Probleme programme en c
Résolu
irihm
Messages postés
97
Statut
Membre
-
Nabla's Messages postés 18201 Date d'inscription Statut Contributeur Dernière intervention -
Nabla's Messages postés 18201 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'essaye de créer un programme en c mais le logiciel que j'utilise "code blox" m'affiche a chaque fois un problème avec une parenthèse après mon if.
Le but de ce programme est de savoir en entrant les pourcentage de réussite de 4 candiadts politique si le candidat numéro 1 est élue, en ballotage favorable ou en ballotage défavorable.
Voici le programme que j'ai tapé:
#include <stdio.h>
int main(void)
{
int C1,C2,C3,C4;
printf("Veuillez rentrer le score des 4 candidats");
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);
}
Si vous voyez comment j'arriverais à résoudre ce problème.
Merci d'avance pour votre aide cordialement.
J'essaye de créer un programme en c mais le logiciel que j'utilise "code blox" m'affiche a chaque fois un problème avec une parenthèse après mon if.
Le but de ce programme est de savoir en entrant les pourcentage de réussite de 4 candiadts politique si le candidat numéro 1 est élue, en ballotage favorable ou en ballotage défavorable.
Voici le programme que j'ai tapé:
#include <stdio.h>
int main(void)
{
int C1,C2,C3,C4;
printf("Veuillez rentrer le score des 4 candidats");
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);
}
Si vous voyez comment j'arriverais à résoudre ce problème.
Merci d'avance pour votre aide cordialement.
17 réponses
-
-
-
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); }-
-
ensuite:
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 pasif { //blabla else //blabla }
mais bienif { //blabla } else { //blabla }
-
-
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 -
non pas de warning juste 2 erreurs, avec le premier else et avec la dernière accolade pour fermer le programme.
-
D'accords mais je dois mettre plusieurs if et else et si je ferme le premier if je sort de la boucle non?
-
Voila le programme modifier en suivant tes conseil:
#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) -
a mon avis, c'est ca que tu veux faire:
#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 -
-
-
on place tout ca en résolu ?
-
Euh, pas encore je le test mais la boucle:
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. ^^' -
Le candidat est encore battu :/
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); } -
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 -
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. -
-
et un programmeur de plus en piste ;)