Language c

yassine -  
jackdada Messages postés 91 Statut Membre -
Bonjour,
j'ai pas trouvé l'erreur


#include <stdio.h>
#include <stdlib.h>
int main()
{
int annee;
int Mois;

printf("Saisir une annee :\n ");
scanf("%d",&annee);
printf("Saisir un Mois :\n ");
scanf("%d",&Mois);
switch (Mois) {

case 2:
if(annee % 4 == 0 && annee % 100 != 0 || annee % 400 == 0)
printf("29 jours");

else
printf("28 jours");
break;

case 1,3,5,7,8,10,12 :
printf("31 jours");

break;

case 4,6,9,11:
printf("30 jours");

break;

default:
printf("erreur");;
}
system("pause");
return 0;
}

1 réponse

jackdada Messages postés 91 Statut Membre 19
 
Bonjour,
Tu as 2 erreurs.
Tout d'abords, dans le case 2, à l'intérieur du if manque une paire de parenthèse englobant le &&
if((annee % 4 == 0 && annee % 100 != 0) || annee % 400 == 0) 

Ensuite il y a un problème sur la forme de ton switch. tu n'as pas le droit de mettre case 1,3,5,7,8,10,12: et case 4,6,9,11:
Pour effectuer la même opération à plusieurs cas, tu doit l'écrire sous la forme suivante:
case 1: case 2: case 3: //pour tout les cas se répétant
//mon code
break;

Tu as normalement du voir que, si tu ne met pas de break à la fin d'un cas, il passe automatiquement au cas qui se situe en dessous de lui. Donc ici c'est pareille, pour le cas 1, il continuera dans les cas suivant jusqu'à ce que un cas fasse appel à break pour stopper le switch.
A toi de modifier ton case maintenant pour qu'il reprenne cette forme la.
0