Probleme programme en c
Résolu/Fermé
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
-
17 févr. 2010 à 17:17
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 17 févr. 2010 à 19:16
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 17 févr. 2010 à 19:16
A voir également:
- Probleme programme en c
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Mettre en veille un programme - Guide
- Programme démarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
17 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
17 févr. 2010 à 17:21
17 févr. 2010 à 17:21
Bonjour,
Enlève tous les "%" de ton code.
;o)
Enlève tous les "%" de ton code.
;o)
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 17:25
17 févr. 2010 à 17:25
Merci,
J'ai plus qu'a corriger le reste de mes erreurs ^^.
J'ai plus qu'a corriger le reste de mes erreurs ^^.
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 17:29
17 févr. 2010 à 17:29
Voici le nouveau code:
#include <stdio.h> int main(void) { int C1,C2,C3,C4; printf("Veuillez rentrer le score des 4 candidats:/n"); scanf("%d,%d,%d,%d",&C1,&C2,&C3,&C4); if(C1>50) { printf("Le cancidat est élu au premier tour"); else if((C1<12.5) || (C2>50) || (C3>50) || (C4>50)) { printf("le candidat est battu"); else if((C1>C2) && (C1>C3) && (C1>C4)) { printf("le candidat est en ballotage favorable"); else printf("le candidat est en ballotage défavorable"); } } } return(0); }
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 17:33
17 févr. 2010 à 17:33
deja, à première vu, meme si ca devrait etre qu'un warning:
int C1,C2,C3,C4;
if((C1<12.5) || (C2>50) || (C3>50) || (C4>50))
int C1,C2,C3,C4;
if((C1<12.5) || (C2>50) || (C3>50) || (C4>50))
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 17:37
17 févr. 2010 à 17:37
ensuite:
a mon avis, tu devrais remplacer tes else par des } else {
car tu ne fermes pas ton if, et tu n'ouvres pas ton else ...
la syntaye, c'est pas
mais bien
if((C1<12.5) || (C2>50) || (C3>50) || (C4>50)) { printf("le candidat est battu"); else //nabla's: c'est quoi ce else ??? if((C1>C2) && (C1>C3) && (C1>C4)) { printf("le candidat est en ballotage favorable"); else // et celui ci ??? printf("le candidat est en ballotage défavorable"); } }
a mon avis, tu devrais remplacer tes else par des } else {
car tu ne fermes pas ton if, et tu n'ouvres pas ton else ...
la syntaye, c'est pas
if { //blabla else //blabla }
mais bien
if { //blabla } else { //blabla }
winix
Messages postés
1466
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
18 mai 2011
13
>
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
17 févr. 2010 à 18:26
17 févr. 2010 à 18:26
il me semble aussi que c'est mieux comme ça:
que:
si tu fais ça il me semble que t'as un problème avec le 'else' qui est dans t'as condition 'if(machin)"
code: int machin; if(machin) { blablaba; } else { blablaba; }
que:
code: if(machin){ blablabla; else { blablabla; } }
si tu fais ça il me semble que t'as un problème avec le 'else' qui est dans t'as condition 'if(machin)"
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 17:32
17 févr. 2010 à 17:32
Les erreurs doivent être a cause des if et else mais je vois pas pourquoi.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 17:37
17 févr. 2010 à 17:37
non pas de warning juste 2 erreurs, avec le premier else et avec la dernière accolade pour fermer le programme.
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 17:39
17 févr. 2010 à 17:39
D'accords mais je dois mettre plusieurs if et else et si je ferme le premier if je sort de la boucle non?
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 17:45
17 févr. 2010 à 17:45
Voila le programme modifier en suivant tes conseil:
Maintenant j'ai un warning pour la dernière accolade et une erreur avec le return(0)
#include <stdio.h> int main(void) { int C1,C2,C3,C4; //les différentes variables //Débuts du programme printf("Veuillez rentrer le score des 4 candidats:/n"); scanf("%d,%d,%d,%d",&C1,&C2,&C3,&C4); if(C1>50) { printf("Le cancidat est élu au premier tour"); } else { if((C1<12.5) || (C2>50) || (C3>50) || (C4>50)) { printf("le candidat est battu"); } else { if((C1>C2) && (C1>C3) && (C1>C4)) { printf("le candidat est en ballotage favorable"); } else { printf("le candidat est en ballotage défavorable"); } } } } return(0); }
Maintenant j'ai un warning pour la dernière accolade et une erreur avec le return(0)
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 17:47
17 févr. 2010 à 17:47
a mon avis, c'est ca que tu veux faire:
quand tu fais un else, tu dois fermer le if auquel il se raporte, et le else suit imédiatement la fermeture du if. Sinon il ne sait pas a quoi se raporte le else
dans ton cas, comem les if et else ne sont suivi que d'uen isntruction, toutes tes acolades sont facultatives, mais prends l'habitude de les mettre
#include <stdio.h> int main(void) { int C1,C2,C3,C4; printf("Veuillez rentrer le score des 4 candidats:/n"); scanf("%d,%d,%d,%d",&C1,&C2,&C3,&C4); if(C1>50) { printf("Le cancidat est élu au premier tour"); } else { if((C1<12.5) || (C2>50) || (C3>50) || (C4>50)) { printf("le candidat est battu"); } else { if((C1>C2) && (C1>C3) && (C1>C4)) { printf("le candidat est en ballotage favorable"); } else { printf("le candidat est en ballotage défavorable"); } } } return(0); }
quand tu fais un else, tu dois fermer le if auquel il se raporte, et le else suit imédiatement la fermeture du if. Sinon il ne sait pas a quoi se raporte le else
dans ton cas, comem les if et else ne sont suivi que d'uen isntruction, toutes tes acolades sont facultatives, mais prends l'habitude de les mettre
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 17:48
17 févr. 2010 à 17:48
J'ai trouvé mon erreur, une accolade mal placer. ^^'
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 17:59
17 févr. 2010 à 17:59
Merci pour votre aide.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 18:00
17 févr. 2010 à 18:00
on place tout ca en résolu ?
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 18:06
17 févr. 2010 à 18:06
Euh, pas encore je le test mais la boucle:
ne s'exécute pas, il n'y a que les deux première boucle qu'il le sont, soit il est battu soit il gagne, je comprends pas ou peut être l'erreur :/
Je sais je suis pénible. ^^'
else { if((C1>C2) && (C1>C3) && (C1>C4)) { printf("le candidat est en ballotage favorable"); } else { printf("le candidat est en ballotage defavorable"); }
ne s'exécute pas, il n'y a que les deux première boucle qu'il le sont, soit il est battu soit il gagne, je comprends pas ou peut être l'erreur :/
Je sais je suis pénible. ^^'
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 18:10
17 févr. 2010 à 18:10
essayes avec ces scores:
20,30,30,30
20,30,30,30
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 18:13
17 févr. 2010 à 18:13
Le candidat est encore battu :/
Voici le programme complet:
Voici le programme complet:
#include <stdio.h> int main(void) { int C1,C2,C3,C4; //les différentes variables //Débuts du programme printf("Veuillez rentrer le score des 4 candidats: "); scanf("%d,%d,%d,%d",&C1,&C2,&C3,&C4); if(C1>50) //Première comparaison { printf("Le cancidat est elu au premier tour"); } else { if((C1<12.5) || (C2>50) || (C3>50) || (C4>50)) //Deuxième comparaison { printf("le candidat est battu"); } else { if((C1>C2) && (C1>C3) && (C1>C4)) { printf("le candidat est en ballotage favorable"); } else { printf("le candidat est en ballotage defavorable"); } } } return(0); }
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 18:21
17 févr. 2010 à 18:21
rajoutes moi un:
printf("%d,%d,%d,%d",C1,C2,C3,C4);
pour verifier que tu récupères bien les bonnes valeurs
et changes moi ca: (C1<12.5) en (C1<13) , ou passes toute l'application en float
printf("%d,%d,%d,%d",C1,C2,C3,C4);
pour verifier que tu récupères bien les bonnes valeurs
et changes moi ca: (C1<12.5) en (C1<13) , ou passes toute l'application en float
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 18:25
17 févr. 2010 à 18:25
en effet les valeur de C2, C3 et C4 sont un plus grande d'environ quelques millions de leur valeur initiale ^^'
Chose que je ne trouve pas logique car elles leur valeurs sont déjà définit au début du programme.
Chose que je ne trouve pas logique car elles leur valeurs sont déjà définit au début du programme.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 18:32
17 févr. 2010 à 18:32
fais moi le scanf comme ca:
scanf("%d %d %d %d",&C1,&C2,&C3,&C4);
et tu rentres donc sans les virgules ...
scanf("%d %d %d %d",&C1,&C2,&C3,&C4);
et tu rentres donc sans les virgules ...
irihm
Messages postés
91
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
14 mai 2012
7
17 févr. 2010 à 18:42
17 févr. 2010 à 18:42
Sa marche, je peut le mettre ne résolue.
Merci beaucoup.
Merci beaucoup.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 19:16
17 févr. 2010 à 19:16
et un programmeur de plus en piste ;)
17 févr. 2010 à 17:25
scanf("%d,%d,%d,%d",&C1,&C2,&C3,&C4);
if((C1<12.5%) || (C2>50%) || (C3>50%) || (C4>50%))
seulement ceux qui sont dans les if !
ecux du scanf doivent rester
et merci de poster le nouveau code en utilisant les balises < code > (a coté de souligné), pour qu'on ai l'indentation
17 févr. 2010 à 17:27
Merci Nabla's d'avoir rectifié.
;o)
17 févr. 2010 à 17:29
s'il y a des erreurs, avec l'indentation on verra mieux ...