Exercice

Résolu
Gretyzde Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je bloque à l'exercice qui suis:

2. Les cotes obtenues par un élève aux deux premiers contrôles (Cote1, Cote2) sont obtenues au clavier. On demande d'écrire un DA qui affiche à l'écran le message
-« échec » si les deux cotes sont inférieures à 10 ;
- « remédiation » si une seule des deux cotes est inférieure à 10 ;
- « réussite » dans les autres cas.


Voici mon code:
#include <stdio.h>
#include <stdlib.h>

void main(void)

{
int cot1, cot2;

printf("Veuillez entrer les deux cotes separees par un espace : \n");
scanf("%d %d", &cot1, &cot2);

if (cot1 && cot2 <=10) {
 printf("Echec \n");
}else{
 if(cot1 && cot2 >=10){
  printf("Reussite \n");
 }else{
  printf("Remediation \n");}}

 system("pause");

}

Lorsque que j'inscris "10" dans une des deux côtes, j'obtiens le résultat "Echec" alors que je devrais normalement recevoir "Remediation". Je reçois pourtant "Rémédiation" lorsque les deux cotes sont égales à 10. ai-je commis une erreur?

Je vous remercie à l'avance;

EDIT: Ajout de la coloration syntaxique.

3 réponses

Utilisateur anonyme
 
Bonjour.
2 points:
-On te demande de tester une valeur inférieure et tu utilises des inférieurs ou égal.
-
cot1 && cot2 <=10
ce code veut dire que tu testes si cot1 est vrai et si cot2 est inférieur ou égal à 10.

Voir cette page http://progdupeu.pl/#1-conditions-et-booleens au moins les chapitres sur les booléens et les opérateurs binaires

Penser aux balises de coloration syntaxique: bouton <>, préciser le langage :<code csharp>.
Quand la solution est trouvée, mettre la discussion Résolue.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Effectivement, comme dit par Whismeril, si tu veux faire si a et b supérieur à 10, alors il faut mettre : if (a>10 && b>10)

Remarque : plutôt que :
else {
     if {
...

Tu devrais utiliser :
else if {
...

La bon prototype de main() sans argument est : int main(void)
et il ne faut pas oublier : return 0; en fin de main().

Cdlt,
0
Gretyzde Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonsoir! Je vous remercie pour votre aide, vous m'avez permis de résoudre l'exercice!
Deux choses aussi:

-au sujet de la coloration syntaxique, je n'ai aucune idée de comment l'appliquer sur le forum, de plus, je travaille sur une vieille version de visual studio qui ne prend pas en charge la coloration (juste pour les préprocesseur et les types des variables)

-au sujet de "return 0" et de "int main", je n'ai pas le droit de les utiliser dans mon cursus scolaire. Je ne peux me plier qu'à ce que j'ai écris dans ce code.. Je suis bien conscient que ce que vous dites est tout à fait juste car je me suis documenté auparavant mais je n'ai pas la raison exact de ce changement. Si vous pouviez m'expliquer la nuance, ça serait top!

Bien à vous.
0
Gretyzde Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   2
 
Whoops! Compris pour la coloration syntaxique, je n'avais pas lu ce qui était écrit en dessous!
0
Utilisateur anonyme
 
Merci de signaler le sujet résolu en cliquant sur le lien dédié sur le titre de la discussion
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Si vous pouviez m'expliquer la nuance, ça serait top!
Il n'y a pas de nuance. void main(void) n'est pas conforme à la norme.
La norme spécifie que le main() doit renvoyer 0 lorsque le programme s'est déroulé correctement. Cela signifie simplement que ton cursus ne respecte pas la norme ISO. Et je sens que ça ne s'arrêtera pas au main ;-).
0
sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   49 > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonsoir
moi je rajouterais ceci le renvoi de 0 est correct mais, la formule exacte est
 return( EXIT_SUCCESS ) 

à bientôt
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
EXIT_SUCCESS = 0 systématiquement...
Par contre pas besoin de parenthèses :-)
0