Programmer en c
Fermé
sisimouhamed
-
22 sept. 2008 à 20:21
Sisiniya Messages postés 142 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 24 mars 2010 - 25 janv. 2009 à 23:15
Sisiniya Messages postés 142 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 24 mars 2010 - 25 janv. 2009 à 23:15
A voir également:
- Programmer en c
- Programmer sms - Guide
- Programmer mail gmail - Guide
- Programmer en basic sous windows 10 - Télécharger - Édition & Programmation
- Programmer un mail outlook - Guide
- Mettre en veille un programme - Guide
32 réponses
the_hawk_1
Messages postés
4
Date d'inscription
vendredi 29 août 2008
Statut
Membre
Dernière intervention
22 septembre 2008
1
22 sept. 2008 à 20:25
22 sept. 2008 à 20:25
Bonjour,
quel est le résultat quand tu roule ton ou compile ton code?
Vite comme ça, en partant, tu déclare ton main comme retournant un INT, alors que tu ne retourne rien (VOID).
Je tenterais le void main (void) {
en premier...
quel est le résultat quand tu roule ton ou compile ton code?
Vite comme ça, en partant, tu déclare ton main comme retournant un INT, alors que tu ne retourne rien (VOID).
Je tenterais le void main (void) {
en premier...
j'ai remplacé int main par void main (void) et le voici:
#include<stdio.h>
void main (void){
int a,b,s;
char reponse;
do{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d", s);
scanf("%d", &s);
printf("continuez(o\n)");
scanf("%c", &reponse);
}
while (reponse=='o');
}
dans ce cas il m'affiche cet erreur:'main'must return 'int'
#include<stdio.h>
void main (void){
int a,b,s;
char reponse;
do{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d", s);
scanf("%d", &s);
printf("continuez(o\n)");
scanf("%c", &reponse);
}
while (reponse=='o');
}
dans ce cas il m'affiche cet erreur:'main'must return 'int'
Sisiniya
Messages postés
142
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
24 mars 2010
19
23 sept. 2008 à 00:47
23 sept. 2008 à 00:47
Voilà le programme corrigé , je l'ai testé chez - moi avant de vous le communique :
-------------------------------------------------*****************************---------------------------------------------
================================================================
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main ()
{
int a,b,s;
char reponse ;
do
{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d \n", s);
do
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}while(reponse != 'o' && reponse != 'n');
}while (reponse == 'o');
printf("A tres bient tot ... ! ");
getch();
return 0 ;
}
-------------------------------------------------*****************************---------------------------------------------
================================================================
J'utlilise Comme compilateur dev-C++ .
Sisiniya .--
Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul.
--->> auteur : Jules Renard <<---
-------------------------------------------------*****************************---------------------------------------------
================================================================
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main ()
{
int a,b,s;
char reponse ;
do
{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d \n", s);
do
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}while(reponse != 'o' && reponse != 'n');
}while (reponse == 'o');
printf("A tres bient tot ... ! ");
getch();
return 0 ;
}
-------------------------------------------------*****************************---------------------------------------------
================================================================
J'utlilise Comme compilateur dev-C++ .
Sisiniya .--
Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul.
--->> auteur : Jules Renard <<---
Sisiniya
Messages postés
142
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
24 mars 2010
19
23 sept. 2008 à 01:07
23 sept. 2008 à 01:07
1ér erreur : vous n'avez pas besoin d'un scanf dans ces deux lignes puisque vous avez pas demandez à l'utilisateur de saisir une donnée :
s=a+b;
printf("le resultat est:%d", s);
scanf("%d", &s);
Sisiniya .
s=a+b;
printf("le resultat est:%d", s);
scanf("%d", &s);
Sisiniya .
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
22 sept. 2008 à 20:49
22 sept. 2008 à 20:49
je vois pas a qoi te sert le
puisque tu calcules s
essaye ça
scanf("%d", &s);
puisque tu calcules s
essaye ça
#include<stdio.h> void main (void){ int a,b,s; char reponse; do{ printf("a:\n"); scanf("%d", &a); printf("b:\n"); scanf("%d", &b); s=a+b; printf("le resultat est:%d", s); fgetc(stdin); printf("continuez(o\n)"); scanf("%c", &reponse); } while (reponse=='o'); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
si je ne met pas le scanf dans ce cas je n'arrive pas à voire les solutions l'orsque je compile.Merci
si je ne met pas le scanf dans ce cas je n'arrive pas à voire les solutions l'orsque je compile.Merci
rufa
Messages postés
160
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
14 juillet 2014
4
23 sept. 2008 à 18:33
23 sept. 2008 à 18:33
salut voila ce code marche en dev c++.
#include<stdio.h>
#include<stdlib.h>
int main ()
{
int a,b,s;
char reponse;
do{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d", s);
printf("\n");
printf("continuez(o/n)");
scanf("%c",&reponse);
printf("\n");
}
while (reponse=='o');
/*faire un traitement*/
system("pause");
}
#include<stdio.h>
#include<stdlib.h>
int main ()
{
int a,b,s;
char reponse;
do{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d", s);
printf("\n");
printf("continuez(o/n)");
scanf("%c",&reponse);
printf("\n");
}
while (reponse=='o');
/*faire un traitement*/
system("pause");
}
Bonjour Sisinya,
votre programme marche comme je preferé mais si vous m'exxpliquez pourquoi les bibliothéque <conio.h> et <string.h> aussi si je comprend bien cet boucle
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}while(reponse != 'o' && reponse != 'n');
se trouve dans ce boucle
do
{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d \n", s);
do
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}while(reponse != 'o' && reponse != 'n');
}while (reponse == 'o');
en plus pouvez vous bien m'expliquez pourquoi reponse = getchar(); et scanf("%c", &reponse); .Merci de m'expliquez car actuellement vous etes la seul personne qui ma donner une reponse exacte à ma question et s'il vous plait continuons la discussion a+
votre programme marche comme je preferé mais si vous m'exxpliquez pourquoi les bibliothéque <conio.h> et <string.h> aussi si je comprend bien cet boucle
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}while(reponse != 'o' && reponse != 'n');
se trouve dans ce boucle
do
{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d \n", s);
do
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}while(reponse != 'o' && reponse != 'n');
}while (reponse == 'o');
en plus pouvez vous bien m'expliquez pourquoi reponse = getchar(); et scanf("%c", &reponse); .Merci de m'expliquez car actuellement vous etes la seul personne qui ma donner une reponse exacte à ma question et s'il vous plait continuons la discussion a+
Bonjour si je ne met pas du scanf je ne voit pas les solutions en plus
votre programme marche comme je preferé mais si vous m'exxpliquez bien pourquoi les bibliothéque <conio.h> et <string.h> aussi si je comprend bien cet boucle
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}
se trouve dans ce boucle
do
{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d \n", s);
do
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}while(reponse != 'o' && reponse != 'n');
}while (reponse == 'o');
en plus pouvez vous bien m'expliquez pourquoi reponse = getchar(); et scanf("%c", &reponse); .Merci de m'expliquez car actuellement vous etes la seul personne qui ma donner une reponse exacte à ma question et s'il vous plait continuons la discussion a+
votre programme marche comme je preferé mais si vous m'exxpliquez bien pourquoi les bibliothéque <conio.h> et <string.h> aussi si je comprend bien cet boucle
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}
se trouve dans ce boucle
do
{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d \n", s);
do
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}while(reponse != 'o' && reponse != 'n');
}while (reponse == 'o');
en plus pouvez vous bien m'expliquez pourquoi reponse = getchar(); et scanf("%c", &reponse); .Merci de m'expliquez car actuellement vous etes la seul personne qui ma donner une reponse exacte à ma question et s'il vous plait continuons la discussion a+
Sisiniya
Messages postés
142
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
24 mars 2010
19
24 sept. 2008 à 14:00
24 sept. 2008 à 14:00
Question1 : votre programme marche comme je preferé mais si vous m'exxpliquez bien pourquoi les bibliothéque <conio.h> et <string.h>
**a** La bibliothèque String est obligatoire pour utliser un Type char , c-à-d à chaque fois vous voulez utilisre une variable contenant soit un caractère soit une chaîne de caractère il faut déclarer sa bibliothèque qui est #include<stdio.h>.
On dit que que le type char est un type prè-défini .
**b** La fonction " getch() " écrite à la fin de progrmme est définie dans sa bibliothèque <conio.h> . Essayez d'enlever getch() et #include<conio.h> si ton progrmme s'éxécute bien et il vous affiche à la fin le message " A tres bien tot " si vous avez répondu avec n , alors vous pouvez l'enlever . Parceque chez moi , si je les enlève , la fenêtre d'éxécution se disparaître avant de m'afficher ce message . Bref, pour l'attente d'appuie d'une touche, vous utilisez la fonction getch() .
Question2 : reponse = getchar(c) ; La fonction de getchar() permet de saisir un seul caractère sur le flux d'entrée standard.
Question 3 : pour la boucle intérieure :
do
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}while(reponse != 'o' && reponse != 'n');
Permet de répéter cette phrase << continuez o ou n \n >> tant que l'utilisateur saisie un caractère différent de "n" et "o" , d'où la condition ---> while(reponse != 'o' && reponse != 'n'); <--- . Une fois l'utilisateur saisie "o" , le programme sera répéter d'où la condition ---> while (reponse == 'o'); <--- . Et si la saisie était "n" on sort de la boucle mère do --- while , et on affiche << A tres bien tot >> .
J'espère que j'ai répondu à Votre Question :-) .
Sisiniya .
**a** La bibliothèque String est obligatoire pour utliser un Type char , c-à-d à chaque fois vous voulez utilisre une variable contenant soit un caractère soit une chaîne de caractère il faut déclarer sa bibliothèque qui est #include<stdio.h>.
On dit que que le type char est un type prè-défini .
**b** La fonction " getch() " écrite à la fin de progrmme est définie dans sa bibliothèque <conio.h> . Essayez d'enlever getch() et #include<conio.h> si ton progrmme s'éxécute bien et il vous affiche à la fin le message " A tres bien tot " si vous avez répondu avec n , alors vous pouvez l'enlever . Parceque chez moi , si je les enlève , la fenêtre d'éxécution se disparaître avant de m'afficher ce message . Bref, pour l'attente d'appuie d'une touche, vous utilisez la fonction getch() .
Question2 : reponse = getchar(c) ; La fonction de getchar() permet de saisir un seul caractère sur le flux d'entrée standard.
Question 3 : pour la boucle intérieure :
do
{
printf("continuez o ou n \n");
reponse = getchar();
scanf("%c", &reponse);
}while(reponse != 'o' && reponse != 'n');
Permet de répéter cette phrase << continuez o ou n \n >> tant que l'utilisateur saisie un caractère différent de "n" et "o" , d'où la condition ---> while(reponse != 'o' && reponse != 'n'); <--- . Une fois l'utilisateur saisie "o" , le programme sera répéter d'où la condition ---> while (reponse == 'o'); <--- . Et si la saisie était "n" on sort de la boucle mère do --- while , et on affiche << A tres bien tot >> .
J'espère que j'ai répondu à Votre Question :-) .
Sisiniya .
bonjour
essayes comme ca : ca marche.
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int a,b,s;
int un = 1;
int reponse;
do{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d \n", s);
printf("pour continuez taper le chiffre 1 :"); // un
scanf("%d",&reponse);
printf("reponse %d\n",reponse);
}while (reponse == un);
system("PAUSE");
}
essayes comme ca : ca marche.
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int a,b,s;
int un = 1;
int reponse;
do{
printf("a:\n");
scanf("%d", &a);
printf("b:\n");
scanf("%d", &b);
s=a+b;
printf("le resultat est:%d \n", s);
printf("pour continuez taper le chiffre 1 :"); // un
scanf("%d",&reponse);
printf("reponse %d\n",reponse);
}while (reponse == un);
system("PAUSE");
}
Sisiniya
Messages postés
142
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
24 mars 2010
19
24 sept. 2008 à 20:03
24 sept. 2008 à 20:03
Bonne Chance .
Sisiniya .--
Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul.
--->> auteur : Jules Renard <<---
Sisiniya .--
Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul.
--->> auteur : Jules Renard <<---
Bonjour sisinya,
pouvez vous me corriger ce programme qui affiche en méme temps tout les resultats et je veut que ça affiche que le resultat de l'operation choisit :
#include<stdio.h>
#include<conio.h>
int main()
{
float a,b,s;
char oper;
do while (oper!='e'){
printf("choisissez un operation(+,-,*,/,e pour arreter)\n");
fflush(stdin);
scanf ("%c", &oper);
printf("entrer premier nommbre:\n", a);
scanf("%f", &a);
printf("entrer deuxieme nommbre:\n", b);
scanf("%f", &b);
if (oper=='+');
s=a+b;
printf("la somme est:%f\n", s);
if (oper=='-');
s=a-b;
printf("la difference est:%f\n", s);
if (oper=='*');
s=a*b;
printf("le resulta est:%f\n", s);
if (oper=='/');
s=a/b;
printf("le resultat est:%f\n", s);
do{
printf("voulez vous continuez(o ou n)\n");
oper = getchar();
scanf("%c", &oper);
}
while (oper!= 'o' && oper != 'n');
}while(oper == 'o');
printf("A bientot");
getch();
return 0;
}
Merci de m'aider je coompte sur vous
pouvez vous me corriger ce programme qui affiche en méme temps tout les resultats et je veut que ça affiche que le resultat de l'operation choisit :
#include<stdio.h>
#include<conio.h>
int main()
{
float a,b,s;
char oper;
do while (oper!='e'){
printf("choisissez un operation(+,-,*,/,e pour arreter)\n");
fflush(stdin);
scanf ("%c", &oper);
printf("entrer premier nommbre:\n", a);
scanf("%f", &a);
printf("entrer deuxieme nommbre:\n", b);
scanf("%f", &b);
if (oper=='+');
s=a+b;
printf("la somme est:%f\n", s);
if (oper=='-');
s=a-b;
printf("la difference est:%f\n", s);
if (oper=='*');
s=a*b;
printf("le resulta est:%f\n", s);
if (oper=='/');
s=a/b;
printf("le resultat est:%f\n", s);
do{
printf("voulez vous continuez(o ou n)\n");
oper = getchar();
scanf("%c", &oper);
}
while (oper!= 'o' && oper != 'n');
}while(oper == 'o');
printf("A bientot");
getch();
return 0;
}
Merci de m'aider je coompte sur vous
Sisiniya
Messages postés
142
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
24 mars 2010
19
24 sept. 2008 à 23:33
24 sept. 2008 à 23:33
Il faut prendre l'habitude à ne pas oublier #include<string.h> lors d'une utilisation des variables de Type char !
----------------------------------------------------------////*******////---------------------------------------------------------------------------
========================== Votre Programme ===============================
#include<stdio.h>
#include<string.h>
#include<conio.h>
int main()
{
float a,b,s;
char oper; // le type char est défini dans la bibliothèque #include<string.h>
do // Boucle répéte votre programme tant que vous avez répondu par o
{
do // boucle se répéte tant que vous n' avez pas tapé le bon caractère correspondant l'opération
{
printf("choisissez un operation(+,-,*,/ \n");
fflush(stdin);
scanf ("%c", &oper);
}while(oper != '*' && oper != '-' && oper != '+' && oper != '/');
printf("entrer premier nommbre:\n", a);
scanf("%f", &a);
printf("entrer deuxieme nommbre:\n", b);
scanf("%f", &b);
// ici , on étudie les cas de la variable oper à l'aide des fameux conditions if......else if .....else
if (oper=='+')
{
s=a+b;
printf("la somme est:%f\n", s);
}
else if(oper=='-')
{
s=a-b;
printf("la difference est:%f\n", s);
}
else if (oper=='*')
{
s=a*b;
printf("le resulta est:%f\n", s);
}
else
{
s=a/b;
printf("le resultat est:%0.2f\n", s);
}
do// boucle déjà vu dans votre ancien programme
{
printf("voulez vous continuez(o ou n)\n");
oper = getchar();
scanf("%c", &oper);
}while (oper!= 'o' && oper != 'n' );
}while(oper != 'n');
printf("A bientot");
getch();
return 0;
}
En fait , je l'ai testé chez - moi avant de le poster .
Souhaitant que j'ai répondu à votre question .
Sisiniya .
----------------------------------------------------------////*******////---------------------------------------------------------------------------
========================== Votre Programme ===============================
#include<stdio.h>
#include<string.h>
#include<conio.h>
int main()
{
float a,b,s;
char oper; // le type char est défini dans la bibliothèque #include<string.h>
do // Boucle répéte votre programme tant que vous avez répondu par o
{
do // boucle se répéte tant que vous n' avez pas tapé le bon caractère correspondant l'opération
{
printf("choisissez un operation(+,-,*,/ \n");
fflush(stdin);
scanf ("%c", &oper);
}while(oper != '*' && oper != '-' && oper != '+' && oper != '/');
printf("entrer premier nommbre:\n", a);
scanf("%f", &a);
printf("entrer deuxieme nommbre:\n", b);
scanf("%f", &b);
// ici , on étudie les cas de la variable oper à l'aide des fameux conditions if......else if .....else
if (oper=='+')
{
s=a+b;
printf("la somme est:%f\n", s);
}
else if(oper=='-')
{
s=a-b;
printf("la difference est:%f\n", s);
}
else if (oper=='*')
{
s=a*b;
printf("le resulta est:%f\n", s);
}
else
{
s=a/b;
printf("le resultat est:%0.2f\n", s);
}
do// boucle déjà vu dans votre ancien programme
{
printf("voulez vous continuez(o ou n)\n");
oper = getchar();
scanf("%c", &oper);
}while (oper!= 'o' && oper != 'n' );
}while(oper != 'n');
printf("A bientot");
getch();
return 0;
}
En fait , je l'ai testé chez - moi avant de le poster .
Souhaitant que j'ai répondu à votre question .
Sisiniya .
Sisiniya
Messages postés
142
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
24 mars 2010
19
24 sept. 2008 à 23:44
24 sept. 2008 à 23:44
J'ai oublié de vous dire : Considérons par exemple la somme s = 9 .
Vous remarquez lorsque vous utilisez printf("le resultat est:%f\n", s); cette ligne envoie 9.000000 ( C'est pas jolie )
Alors , pour contôler le nombre de chiffres après la virgule , je vous donne ceux que je connais :
En utilisant %0.f au lieu %f :printf("le resultat est:%0.f\n", s); cette ligne m'envoie 9
En utilisant %0.2f au lieu %f printf("le resultat est:%0.2f\n", s); cette ligne m'envoie 9.00
En général , on met %0.Xf avec X = nbr de chiffre après la virgule .
Sisiniya .
Vous remarquez lorsque vous utilisez printf("le resultat est:%f\n", s); cette ligne envoie 9.000000 ( C'est pas jolie )
Alors , pour contôler le nombre de chiffres après la virgule , je vous donne ceux que je connais :
En utilisant %0.f au lieu %f :printf("le resultat est:%0.f\n", s); cette ligne m'envoie 9
En utilisant %0.2f au lieu %f printf("le resultat est:%0.2f\n", s); cette ligne m'envoie 9.00
En général , on met %0.Xf avec X = nbr de chiffre après la virgule .
Sisiniya .
Bonjour,
votre programme marche bien mais pouvez vous m'expliquez pourquoi le (%0.2f) dans ce cas.
printf("le resultat est:%0.2f\n", s).Merci de m'expliquer
votre programme marche bien mais pouvez vous m'expliquez pourquoi le (%0.2f) dans ce cas.
printf("le resultat est:%0.2f\n", s).Merci de m'expliquer
je m'excuse j'avais pas vue l'autre message mais merci de me l'expliquer j'avais pas vus que tu m'avais deja repondu.Merci
Bonjour pouvez vous m'indiquez à savoire le code source pour traiter cet exercice:
ecrire un programme qui lit son entrée au clavier et qui calcule le nombre de caractére et le nombre de mots lus.S'il vous plait je veux comprendre le procedure je compte sur vous
ecrire un programme qui lit son entrée au clavier et qui calcule le nombre de caractére et le nombre de mots lus.S'il vous plait je veux comprendre le procedure je compte sur vous
Sisiniya
Messages postés
142
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
24 mars 2010
19
26 sept. 2008 à 02:09
26 sept. 2008 à 02:09
Bonsoir ,
----------------------------------------------------------////*******////---------------------------------------------
========================== Exemple de Programme ====================
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
int longueur , L = 0 , i , compt_espace= 0;
char c;
printf("Entrez un mot: \n");
while((c=getchar())!='\n')
{
if(c ==' ')compt_espace++;
else l ++ ;
i++ ;
}
longueur = L + compt_espace ;
printf("Nombre d'espace dans Votre phrase est : %d\n",compt_espace);
printf("Nombre de caracter en excluant l'espace est : %d\n", L);
printf("Nombre de caracter avec espace est : %d\n",longueur);
getch();
return 0 ;
}
----------------------------------------------------------////*******////---------------------------------------------
Remarque :
Il y a une Fonction appellée strlen qui permet de calculer le nombre de caractère d'une chaîne sasisie au clavier . Ce nombre de caractère obtenu par la Fonction strlen contient aussi le nombre d'espace.
Sisiniya .
----------------------------------------------------------////*******////---------------------------------------------
========================== Exemple de Programme ====================
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
int longueur , L = 0 , i , compt_espace= 0;
char c;
printf("Entrez un mot: \n");
while((c=getchar())!='\n')
{
if(c ==' ')compt_espace++;
else l ++ ;
i++ ;
}
longueur = L + compt_espace ;
printf("Nombre d'espace dans Votre phrase est : %d\n",compt_espace);
printf("Nombre de caracter en excluant l'espace est : %d\n", L);
printf("Nombre de caracter avec espace est : %d\n",longueur);
getch();
return 0 ;
}
----------------------------------------------------------////*******////---------------------------------------------
Remarque :
Il y a une Fonction appellée strlen qui permet de calculer le nombre de caractère d'une chaîne sasisie au clavier . Ce nombre de caractère obtenu par la Fonction strlen contient aussi le nombre d'espace.
Sisiniya .
Sisiniya
Messages postés
142
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
24 mars 2010
19
26 sept. 2008 à 11:12
26 sept. 2008 à 11:12
Dans la boucle while :
while((c=getchar())!='\n')
{
if(c ==' ')compt_espace++;
else l ++ ; // cette ligne , j'ai écrit l++ (l en miniscule ) au lieu d'écire L++ (L en majuscule)
// c'est une faute de frappe !
i++ ;
}
Alors , chez vous , remplacez dans la ligne de else l++ par L++
Sisiniya .
while((c=getchar())!='\n')
{
if(c ==' ')compt_espace++;
else l ++ ; // cette ligne , j'ai écrit l++ (l en miniscule ) au lieu d'écire L++ (L en majuscule)
// c'est une faute de frappe !
i++ ;
}
Alors , chez vous , remplacez dans la ligne de else l++ par L++
Sisiniya .
Bonjour,
pouvez vous m'expliquez literairement ce boucle:
while((c=getchar())!='\n')
{
if(c ==' ')compt_espace++;
else L ++ ;
i++ ;
}
Merci de m'expliquez
pouvez vous m'expliquez literairement ce boucle:
while((c=getchar())!='\n')
{
if(c ==' ')compt_espace++;
else L ++ ;
i++ ;
}
Merci de m'expliquez
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
10
26 sept. 2008 à 17:52
26 sept. 2008 à 17:52
explication littérale :
tant qu'on ne rencontre pas le caractère '\n' (fin de ligne), on affecte le caractere dans la variable c.
Si c est un espace, on incrémente de 1 la valeur de compt_espace,
sinon on incrémente de 1 la valeur de L,
on incrémente de 1 la valeur de i
et on retourne au test de la boucle.
tant qu'on ne rencontre pas le caractère '\n' (fin de ligne), on affecte le caractere dans la variable c.
Si c est un espace, on incrémente de 1 la valeur de compt_espace,
sinon on incrémente de 1 la valeur de L,
on incrémente de 1 la valeur de i
et on retourne au test de la boucle.
sisimouhamed
>
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
29 sept. 2008 à 20:28
29 sept. 2008 à 20:28
Bonjour,
pouvez vous m'expliquez pourquoi cette fonction:
int Maximum(int a, int b){
if(a > b) return a;
return b;
}
Aussi pourqoi initialiser max a nombre1.En plus pouvez me dire ce qui ne marchais pas dans mon programme
Merci de m'expliquer
pouvez vous m'expliquez pourquoi cette fonction:
int Maximum(int a, int b){
if(a > b) return a;
return b;
}
Aussi pourqoi initialiser max a nombre1.En plus pouvez me dire ce qui ne marchais pas dans mon programme
Merci de m'expliquer
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
10
>
sisimouhamed
29 sept. 2008 à 21:19
29 sept. 2008 à 21:19
La fonction :
int Maximum(int a, int b){
if(a > b) return a;
return b;
}
permet de recuperer le maximum entre a et b. Si a est le max, alors la fonction reourne la valeur de a, sinon c'est forcément b le max donc on retourne la valeur de b.
Dans le main, max est initialisé à nombre1, mais peu importe, tu peux l'initialiser à nombre2, nombre3 ou nombre4. L'essentiel c'est que tu l'initialise à l'un de ces nombres et qu'ensuite tu le compare à tour de rôle avec les trois autres.
Pour répondre à ta question sur le fait que ton programme ne marchait pas : en fait il marche mais ça ne fait pas ce que tu veux comme résultat. J'explique : tu teste à chaque fois des conditions avec "&&". Dans tes if, le test ne retourne vrai que dans un cas particulier, càd dans le cas où l'on est en présence d'une suite de nombres strictement croissants (exemple 5, 44, 50 et 57, ou encore 1, 23, 46 et 107 ... etc). Or quand la personne saisi un à un les 4 nombres, il peut saisir n'importe quoi dans le désordre. Bref, tes tests dans if ne retournera vrai que dans un cas sur des milliers.
Petit rappel quand tu utilise "&&" dans un test :
int main(void){
int a = 1; /*ou sinon initialise a=0, c'est pareil*/
if(a==0 && a==1){/*si a==0 "et" a==1 alors j'affiche que je suis con*/
printf("\nJe suis con\n");
}
else{/*sinon j'affiche que je ne suis pas con*/
printf("\nje ne suis pas con\n");
}
return 0;
}
Le "et" n'est vrai que si les 2 conditions sont remplies, il suffit qu'il y en a une qui n'est pas remplie, elle retourne faux.
Dans mon petit rappel ci-dessus, il t'affichera toujours "je ne suis pas con" car a ne peut jamais être à la fois égal à 0 et en même temps égal à 1.
J'espère que tu as compris mon explication.
int Maximum(int a, int b){
if(a > b) return a;
return b;
}
permet de recuperer le maximum entre a et b. Si a est le max, alors la fonction reourne la valeur de a, sinon c'est forcément b le max donc on retourne la valeur de b.
Dans le main, max est initialisé à nombre1, mais peu importe, tu peux l'initialiser à nombre2, nombre3 ou nombre4. L'essentiel c'est que tu l'initialise à l'un de ces nombres et qu'ensuite tu le compare à tour de rôle avec les trois autres.
Pour répondre à ta question sur le fait que ton programme ne marchait pas : en fait il marche mais ça ne fait pas ce que tu veux comme résultat. J'explique : tu teste à chaque fois des conditions avec "&&". Dans tes if, le test ne retourne vrai que dans un cas particulier, càd dans le cas où l'on est en présence d'une suite de nombres strictement croissants (exemple 5, 44, 50 et 57, ou encore 1, 23, 46 et 107 ... etc). Or quand la personne saisi un à un les 4 nombres, il peut saisir n'importe quoi dans le désordre. Bref, tes tests dans if ne retournera vrai que dans un cas sur des milliers.
Petit rappel quand tu utilise "&&" dans un test :
int main(void){
int a = 1; /*ou sinon initialise a=0, c'est pareil*/
if(a==0 && a==1){/*si a==0 "et" a==1 alors j'affiche que je suis con*/
printf("\nJe suis con\n");
}
else{/*sinon j'affiche que je ne suis pas con*/
printf("\nje ne suis pas con\n");
}
return 0;
}
Le "et" n'est vrai que si les 2 conditions sont remplies, il suffit qu'il y en a une qui n'est pas remplie, elle retourne faux.
Dans mon petit rappel ci-dessus, il t'affichera toujours "je ne suis pas con" car a ne peut jamais être à la fois égal à 0 et en même temps égal à 1.
J'espère que tu as compris mon explication.
Sisiniya
Messages postés
142
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
24 mars 2010
19
>
sisimouhamed
29 sept. 2008 à 21:53
29 sept. 2008 à 21:53
oupsman vous a bien expilqué , Je vais seulement ajouter une petite explication :
int Maximum(int a, int b){
if(a > b) return a;
return b;
}
cette fonction appellée Maximum , elle prend comme paramétre deux int et elle retourne comme résultat un int .
cette fonction est bien expliquée , mais on va rien à perdre si je vous donne un équivalent pour bien comprendre :
int Maximum(int a, int b)
{
int max ; // max est le resultat que la fonction retourne
if ( a > b )
max = a ; // si a > b alors on affecte a à la variable max
else
max = b ; // si a < b on affecte b à la variable max
return max ; // on retourne max
}
Les deux fonctions ont le même mécanisme et donnent même résultat , sauf que la 1ére est plus courte et la 2ém est un peux détaillé car on a utilisé une variable auxilliaire pour mieux vous expliquer .
Conseil :
C'est vous avez pas encore apprendre les fonctions en C , je vous conseille de les bien maîtriser car elles sont important dans la Programmation , elles vous permet de bien structurer votre Code .
Sisiniya .
int Maximum(int a, int b){
if(a > b) return a;
return b;
}
cette fonction appellée Maximum , elle prend comme paramétre deux int et elle retourne comme résultat un int .
cette fonction est bien expliquée , mais on va rien à perdre si je vous donne un équivalent pour bien comprendre :
int Maximum(int a, int b)
{
int max ; // max est le resultat que la fonction retourne
if ( a > b )
max = a ; // si a > b alors on affecte a à la variable max
else
max = b ; // si a < b on affecte b à la variable max
return max ; // on retourne max
}
Les deux fonctions ont le même mécanisme et donnent même résultat , sauf que la 1ére est plus courte et la 2ém est un peux détaillé car on a utilisé une variable auxilliaire pour mieux vous expliquer .
Conseil :
C'est vous avez pas encore apprendre les fonctions en C , je vous conseille de les bien maîtriser car elles sont important dans la Programmation , elles vous permet de bien structurer votre Code .
Sisiniya .
25 sept. 2008 à 17:34
le void main (void) est definie dans quelle bibliothéque? car a chaque fois que je le met un message d'erreur s'affiche.Mreci de m'expliquer