Switch

lamte01 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   -  
 loupius -
Bonjour,
J'ai une difficulté sur le progamme switch pour progammer les années et leurs moi et combien ik contient comme jours .
ex: apres la compilation quant je donne le numero de 2000 et le numero du mois 2 il ecrit le mois de fevrier 29 jours ou le de ? 31 jours
A voir également:

5 réponses

loupius
 
'switch' n'est pas un programme mais une fonction.
Comment te répondre?
On ne connait pas le language et tu ne dis rien sur ton algorithme ou ton code.
Désolé.
0
lamte01 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention  
 
je veux créer un programme avec la fonction switch en c++ le programme est : faites un programme avec la fonction swicth
#include<iostream.h>
main()
{
int g;
cout <<"Donner le numero du mois\n";
cin>>g;
switch(g)
{
case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 :
cout<<"31 jours\n";break;
case 4 : case 6 : case 9 : case 11 : cout<<"30 jours\n";break;
case 2:cout<<"28 ou 29 jours\n";break;
default :cout<<"Erreur de numero du mois\n";
}
}
maitenant je veux ameliorer le programme pour faire distingtion entre les l'années normales et les années bissectives qui donne le mois 29 jours pour les années bissectives.
Merci
0
loupius
 
Eh bien c'est un bon début.
Il suffit de saisir l'année, puis dans le cas du 'case 2' il faut tester si l'année est un multiple de 4 et afficher en conséquence 28 ou 29 jours.
Et le tour est joué... enfin presque, car le calcul d'une année bissextile est un peu plus complexe; mais pour une application du switch, c'est pas mal.
0
lamte01 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention  
 
commet on saisit l'année, puis dans le cas du 'case 2' comment tester si l'année est un multiple de 4 et afficher en conséquence 28 ou 29 jours excusez-moi mais je veux les exemple ecritte par ce que je suis un nouveau a c++.
Merci
0
progfann Messages postés 365 Date d'inscription   Statut Membre Dernière intervention   23
 
if(Annee %4==0 && Annee %100!=0 )

//29 jours

else if(Annee %4!=0 && Annee %100==0 )

//28 jours
0
loupius
 
Heu ça va jamais passer dans 28 jours, il faudrait mettre l'inverse du if (== devient != et && devient ||) soit:
else if(Annee %4!=0 || Annee %100==0 ) .
En fait il ne faut rien mettre:
if( !(Annee % 4) && (Annee %100) )
{
  ...  // 29 jours
}
else
{
  ...  // 28 jours
}
Bien vu pour les siècles... il ne reste plus qu'à traiter les cas (par exemple 2000) qui sont quand même bissextiles.
0
progfann Messages postés 365 Date d'inscription   Statut Membre Dernière intervention   23 > loupius
 
oui, c'est parce que je suis debutante en c, en fait si une condition est vrai automatiquement retourne 0, n'est ce pas!!,
if(condition)
//blabla

wi, trés juste, merci
0
loupius > progfann Messages postés 365 Date d'inscription   Statut Membre Dernière intervention  
 
Pas de chance, tu avais une chance sur deux! ;=)))
En C, c'est 0 qui est faux et tout le reste est vrai; une expression fausse retourne 0 et une vraie retourne 1.
0
progfann Messages postés 365 Date d'inscription   Statut Membre Dernière intervention   23 > loupius
 
:~O, je dois réviser mes cours en langage C
0
loupius > progfann Messages postés 365 Date d'inscription   Statut Membre Dernière intervention  
 
A mettre dans les résolutions de cette année nouvelle, ça donne 1 an pour les réaliser ! ;=)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
progfann Messages postés 365 Date d'inscription   Statut Membre Dernière intervention   23
 
en fait, c'est pour cela que j'ai fais (var==0) ou ==1 , juste pour eviter ce genre de probleme (meme si j'ai commis des erreur :~s), mais justement, c'est pas une bonne façon de programmer en C
0
loupius
 
Ce n'est pas une mauvaise façon et le compilateur va probablement donner le même code, mais c'est plus court et les programmeurs sont un peu fainéants !
0