Programmer en c
sisimouhamed
-
Sisiniya Messages postés 144 Statut Membre -
Sisiniya Messages postés 144 Statut Membre -
Bonjour,
j'ai essayé avec un petit programme mais ça na pas marché le voici:
#include<stdio.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);
scanf("%d", &s);
printf("continuez(o\n)");
scanf("%c", &reponse);
}
while (reponse=='o');
}
j'ai essayé avec un petit programme mais ça na pas marché le voici:
#include<stdio.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);
scanf("%d", &s);
printf("continuez(o\n)");
scanf("%c", &reponse);
}
while (reponse=='o');
}
A voir également:
- Programmer en c
- Programmer sms - Guide
- Programmer mail gmail - Guide
- Mettre en veille un programme - Guide
- Programmer en basic sous windows 10 - Télécharger - Édition & Programmation
- Apprendre a programmer - Guide
32 réponses
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'
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 <<---
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
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+
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");
}
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
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 .
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
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 .
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
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.
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.
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 .
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