Erreur C
Résolu/Fermé
bastien352
Messages postés
868
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
29 février 2012
-
30 nov. 2009 à 20:31
bastien352 Messages postés 868 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 29 février 2012 - 4 déc. 2009 à 22:40
bastien352 Messages postés 868 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 29 février 2012 - 4 déc. 2009 à 22:40
A voir également:
- Erreur C
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 5000 france tv - Forum iPhone
- Erreur g030 - Forum Bbox Bouygues
16 réponses
bastien352
Messages postés
868
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
29 février 2012
68
30 nov. 2009 à 20:37
30 nov. 2009 à 20:37
Up
.:Goox:.
Messages postés
2816
Date d'inscription
lundi 22 mai 2006
Statut
Contributeur
Dernière intervention
7 janvier 2017
2 216
30 nov. 2009 à 20:40
30 nov. 2009 à 20:40
Salut,
Apparemment, il te manque des "}"
essaie avec ceci:
Apparemment, il te manque des "}"
essaie avec ceci:
#include <stdio.h> #include <stdlib.h> int main() { int choixMode; printf(" **Mode** \n\n\n\n") ; printf("1. Addition \n") ; printf("2. Multiplication \n\n") ; printf("Tape le numero de l'option chosit \n"); scanf("d%", &choixMode ) ; switch (choixMode) } { case 1: printf("****Mode Addition**** \n\n"); int resultat = 0, nombre1 = 0, nombre2 = 0 ; printf(" Entre le nombre1 : \n"); scanf("%d", &nombre1); printf(" Entre le nombre2 : \n"); scanf("%d", &nombre2); resultat = nombre1 + nombre2; printf("%d + %d = %d \n",nombre1 , nombre2 , resultat); break; case 2: printf ("****Mode Multiplication**** \n\n"); int resultat = 0, nombre1 = 0, nombre2 = 0 ; printf(" Entre le nombre1 : \n"); scanf("%d", &nombre1); printf(" Entre le nombre2 : \n"); scanf("%d", &nombre2); resultat = nombre1 * nombre2; printf("%d * %d = %d \n",nombre1 , nombre2 , resultat); break; return 0; while(!kbhit()); }
bastien352
Messages postés
868
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
29 février 2012
68
30 nov. 2009 à 20:43
30 nov. 2009 à 20:43
salut ,
j'ai toujours erreurs ici
c'est bizarre :S
MERCI de ton aide
j'ai toujours erreurs ici
switch (choixMode) } { case 1:
c'est bizarre :S
MERCI de ton aide
.:Goox:.
Messages postés
2816
Date d'inscription
lundi 22 mai 2006
Statut
Contributeur
Dernière intervention
7 janvier 2017
2 216
30 nov. 2009 à 20:54
30 nov. 2009 à 20:54
Ok, et avec le ";" qui va bien:
switch (choixMode);
}
{
case 1:
switch (choixMode);
}
{
case 1:
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bastien352
Messages postés
868
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
29 février 2012
68
30 nov. 2009 à 20:57
30 nov. 2009 à 20:57
désormais sa beug une ligne en dessous :S
switch (choixMode);
}
{ ------------------------> ICI
case 1:
switch (choixMode);
}
{ ------------------------> ICI
case 1:
.:Goox:.
Messages postés
2816
Date d'inscription
lundi 22 mai 2006
Statut
Contributeur
Dernière intervention
7 janvier 2017
2 216
1 déc. 2009 à 18:24
1 déc. 2009 à 18:24
Ah, mais le logiciel que tu utilise pour compiler, il te met bien une erreur?
lucieb31
Messages postés
345
Date d'inscription
mercredi 14 janvier 2009
Statut
Membre
Dernière intervention
28 juillet 2012
62
1 déc. 2009 à 18:40
1 déc. 2009 à 18:40
il manque une } mais a la fin,
essaie avec ça :
#include <stdio.h>
#include <stdlib.h>
int main()
{
int choixMode;
printf(" **Mode** \n\n\n\n") ;
printf("1. Addition \n") ;
printf("2. Multiplication \n\n") ;
printf("Tape le numero de l'option chosit \n");
scanf("d%", &choixMode ) ;
switch (choixMode)
{
case 1:
printf("****Mode Addition**** \n\n");
int resultat = 0, nombre1 = 0, nombre2 = 0 ;
printf(" Entre le nombre1 : \n");
scanf("%d", &nombre1);
printf(" Entre le nombre2 : \n");
scanf("%d", &nombre2);
resultat = nombre1 + nombre2;
printf("%d + %d = %d \n",nombre1 , nombre2 , resultat);
break;
case 2:
printf ("****Mode Multiplication**** \n\n");
int resultat = 0, nombre1 = 0, nombre2 = 0 ;
printf(" Entre le nombre1 : \n");
scanf("%d", &nombre1);
printf(" Entre le nombre2 : \n");
scanf("%d", &nombre2);
resultat = nombre1 * nombre2;
printf("%d * %d = %d \n",nombre1 , nombre2 , resultat);
break;
}
return 0;
while(!kbhit());
}
on ne met javais d'accolade fermante aprés le switch.
essaie avec ça :
#include <stdio.h>
#include <stdlib.h>
int main()
{
int choixMode;
printf(" **Mode** \n\n\n\n") ;
printf("1. Addition \n") ;
printf("2. Multiplication \n\n") ;
printf("Tape le numero de l'option chosit \n");
scanf("d%", &choixMode ) ;
switch (choixMode)
{
case 1:
printf("****Mode Addition**** \n\n");
int resultat = 0, nombre1 = 0, nombre2 = 0 ;
printf(" Entre le nombre1 : \n");
scanf("%d", &nombre1);
printf(" Entre le nombre2 : \n");
scanf("%d", &nombre2);
resultat = nombre1 + nombre2;
printf("%d + %d = %d \n",nombre1 , nombre2 , resultat);
break;
case 2:
printf ("****Mode Multiplication**** \n\n");
int resultat = 0, nombre1 = 0, nombre2 = 0 ;
printf(" Entre le nombre1 : \n");
scanf("%d", &nombre1);
printf(" Entre le nombre2 : \n");
scanf("%d", &nombre2);
resultat = nombre1 * nombre2;
printf("%d * %d = %d \n",nombre1 , nombre2 , resultat);
break;
}
return 0;
while(!kbhit());
}
on ne met javais d'accolade fermante aprés le switch.
bastien352
Messages postés
868
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
29 février 2012
68
1 déc. 2009 à 21:38
1 déc. 2009 à 21:38
merci de votre aide !
mais maintenant l'erreur est plus bas :S
mais maintenant l'erreur est plus bas :S
#include <stdio.h> #include <stdlib.h> int main() { int choixMode; printf(" **Mode** \n\n\n\n") ; printf("1. Addition \n") ; printf("2. Multiplication \n\n") ; printf("Tape le numero de l'option chosit \n"); scanf("d%", &choixMode ) ; switch (choixMode) { case 1: printf("****Mode Addition**** \n\n"); int resultat = 0, nombre1 = 0, nombre2 = 0 ; printf(" Entre le nombre1 : \n"); scanf("%d", &nombre1); printf(" Entre le nombre2 : \n"); scanf("%d", &nombre2); resultat = nombre1 + nombre2; printf("%d + %d = %d \n",nombre1 , nombre2 , resultat); break; case 2: printf ("****Mode Multiplication**** \n\n"); int resultat = 0, nombre1 = 0, nombre2 = 0 ; // ici il ya y un rectangle ronge !!!!!!!!! printf(" Entre le nombre1 : \n"); scanf("%d", &nombre1); printf(" Entre le nombre2 : \n"); scanf("%d", &nombre2); resultat = nombre1 * nombre2; printf("%d * %d = %d \n",nombre1 , nombre2 , resultat); break; } return 0; while(!kbhit()); }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 déc. 2009 à 21:45
1 déc. 2009 à 21:45
Salut,
Plusieurs erreurs.
int resultat = 0, nombre1 = 0, nombre2 = 0 ;
Tu les redéfinis au sein même du main. Donc conflits. Si tu veux faire ça, il te faut utiliser des scopes supplémentaires, ou tout simplement tu définis ces variables en haut du main.
Les instructions après un return sont inutiles.
Tu as mis d% au lieu de %d dans un scanf.
Cdlt,
Plusieurs erreurs.
int resultat = 0, nombre1 = 0, nombre2 = 0 ;
Tu les redéfinis au sein même du main. Donc conflits. Si tu veux faire ça, il te faut utiliser des scopes supplémentaires, ou tout simplement tu définis ces variables en haut du main.
Les instructions après un return sont inutiles.
Tu as mis d% au lieu de %d dans un scanf.
Cdlt,
bastien352
Messages postés
868
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
29 février 2012
68
1 déc. 2009 à 21:47
1 déc. 2009 à 21:47
Slt ,
peut tu me dire ce qu'il faut que je rajoute car je debute et j'ai pas tout compris dsl
peut tu me dire ce qu'il faut que je rajoute car je debute et j'ai pas tout compris dsl
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 déc. 2009 à 21:50
1 déc. 2009 à 21:50
Tu supprimes les lignes int resultat = 0, nombre1 = 0, nombre2 = 0 ; de tes cases dans le switch. Tu rajoutes cette ligne là après avant int choixMode;
Ensuite ton premier scanf("d%",...) est erroné, il faut mettre : scanf("%d",...);
Et tu enlèves ta ligne while(!kbhit());
Ensuite ton premier scanf("d%",...) est erroné, il faut mettre : scanf("%d",...);
Et tu enlèves ta ligne while(!kbhit());
bastien352
Messages postés
868
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
29 février 2012
68
1 déc. 2009 à 21:54
1 déc. 2009 à 21:54
Merci enlever la ligne a marcher mais je ne comprend pas pk il faut pas la mettre ?
et la ligne while(!kbhit()); me permet de garder le resultat a l'ecran car autrement ma fenetre dos s'en va des que je tape les deux chiffres et pas le temps de voire le resultat !!!
merci encore
et la ligne while(!kbhit()); me permet de garder le resultat a l'ecran car autrement ma fenetre dos s'en va des que je tape les deux chiffres et pas le temps de voire le resultat !!!
merci encore
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 déc. 2009 à 22:00
1 déc. 2009 à 22:00
Tu ne vois pas pourquoi ?
Dans le premier case 1: tu définis : int resultat; et dans le deuxième case, tu remets int resultat.
Le compilateur ne sait pas quoi faire car tu définis une variable deux fois. Il faut juste la définir une et une seule fois.
Pour le while(!kbhit()); je te conseille dans ce cas de l'enlever et de mettre avant : getchar(); getchar(); avant le return;
Le premier getchar() enlèvera le '\n' stocké dans le buffer clavier lors des scanf. Le deuxième attendra que tu appuies sur une touche suivi de entrée pour continuer.
Cdlt
Dans le premier case 1: tu définis : int resultat; et dans le deuxième case, tu remets int resultat.
Le compilateur ne sait pas quoi faire car tu définis une variable deux fois. Il faut juste la définir une et une seule fois.
Pour le while(!kbhit()); je te conseille dans ce cas de l'enlever et de mettre avant : getchar(); getchar(); avant le return;
Le premier getchar() enlèvera le '\n' stocké dans le buffer clavier lors des scanf. Le deuxième attendra que tu appuies sur une touche suivi de entrée pour continuer.
Cdlt
bastien352
Messages postés
868
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
29 février 2012
68
1 déc. 2009 à 22:02
1 déc. 2009 à 22:02
quelle est la différence ?
merci
merci
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 déc. 2009 à 22:10
1 déc. 2009 à 22:10
kbhit() n'est pas portable contrairement à getchar();
Ce qui veut dire qu'avec la version kbhit ton programme ne tournera que sur Windows qu'alors avec getchar(), il fonctionnera sur tous les systèmes d'exploitation (Windows, Gnu/Linux, Mac OS X, ...).
Autant prendre les bonnes habitudes dès le début ;-))).
Ce qui veut dire qu'avec la version kbhit ton programme ne tournera que sur Windows qu'alors avec getchar(), il fonctionnera sur tous les systèmes d'exploitation (Windows, Gnu/Linux, Mac OS X, ...).
Autant prendre les bonnes habitudes dès le début ;-))).
bastien352
Messages postés
868
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
29 février 2012
68
4 déc. 2009 à 22:40
4 déc. 2009 à 22:40
Merci cela marche !!! merci bcp !!