leo1982
Messages postés2Date d'inscriptionsamedi 2 août 2008StatutMembreDernière intervention13 juin 2016
-
13 juin 2016 à 18:16
nagaD.scar
Messages postés4272Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 2023
-
16 juin 2016 à 15:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Je te l ai un peu modifié pour qu'il soit un peu moins "essouflant" à lire, en gardant exactement le même principe.
#include<stdio.h>
#include<stdlib.h>
int main(){
int jr,moi,an,maxjr,test;
int isOk = 0;//sera mieux pour le test plutot que de le (le test) recopier pour le if ET le while
do {
printf(" entrez la date au format:JJ MM AAAA (l'annee entre 1500 et 3000)\n\n");
test=scanf("%d %d %d",&jr,&moi,&an);
if(test!=3){ //test contient le nombre de valeur corect entrez par l'utilisateur
scanf("%*[^\n]"); //si test est different de 3, on vite le buffer pour eviter que le programe plante
getchar();/* jr=0;moi=0;an=0; *///ensuite je met une mauvaise valeur dans jr,moi et an pour ne pa sortir du while -> plus besoin
}
else{
maxjr = ( moi == 2 ? 28 + (!moi % 4 ? 1 : 0) : 30 + ( moi < 8 ? moi % 2 : (moi+1) % 2 ) );
if((jr>maxjr)||(jr<1)||(moi>12)||(moi<1)||(an<1500)||(an>3000))
printf("\n Mauvaise date, essayez encore \n\n\a");
else
isOk=1;
}
}while(isOk==0);
jr++;
if(jr>maxjr){
jr=1;
moi++;
if(moi>12){
an++;
moi=1;
}
}
printf("la date du lendemain est: %d %d %d",jr,moi,an);
getchar();
return 0;
}
Simplement pour te donner le point de vue d un autre dev ^^
Modifié par nagaD.scar le 16/06/2016 à 15:32
Je te l ai un peu modifié pour qu'il soit un peu moins "essouflant" à lire, en gardant exactement le même principe.
Simplement pour te donner le point de vue d un autre dev ^^