Algorithme Zeller
Résolu
ikam
-
ikam -
ikam -
bonsoir je sais ou est mon probléme ,ca tourne mais ne me donne pas l resultat correcte aparament la formule nai pas correcte donné par lexercice
merciii de m'aiderrr etmerci bk
merciii de m'aiderrr etmerci bk
#include <stdio.h>
#include <stdlib.h>
int main()
{
int j,m,a,r,q,jo,f;
do {
printf("\n donner le nbre de jour svp: \n");
scanf("%d",&j);
}while ((j<=1)&&(j>=31));
do {
printf("\n donner le mois svp: \n");
scanf("%d",&m);
}while ((m<=1)&&(m>=12));
do {
printf("\n donner l'annee svp: \n");
scanf("%d",&a);
}while (a<=1900);
if(m>3){
m=m-2;
} else
{
m=m+10;
a=a-1;
r=a%100;
q=a/100;
}
f= ((j + r) - (2*q) + (q/4) + (r/4)) + (((26 * m) - 2) / 10);
printf("\n%d",f);
jo=f%7;
switch (jo){
case 1:printf(" c est lundi"); break;
case 2:printf("c est mardi"); break;
case 3:printf("c est mercredi"); break;
case 4:printf("c est jeudi"); break;
case 5:printf("c est vendredi"); break;
case 6:printf("c est samedi"); break;
case 7:printf("c est dimanche"); break;
default :printf("erreur");
}
return 0;
}
A voir également:
- Algorithme de zeller
- Algorithme euromillion excel gratuit - Forum Excel
- Un algorithme sur excel ou un logiciel à programmer - Forum Logiciels
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Ecrire un algorithme qui permet de resoudre ax²+bx+c=0 pdf - Forum Algorithmes / Méthodes
- Algorithme : toutes les combinaisons possibles dans un tableau de 2 par 7 ✓ - Forum VB / VBA
2 réponses
Une petite erreur de code :
}while ((j<=1)&&(j>=31));
Ce n'est pas un && qu'il faut mettre mais un ||.
Je te laisse corriger les autres while.
N'oublie pas d'afficher un '\n' avant la fin de ton programme pour forcer l'affichage.
Sinon au niveau de l'algorithme, il est correct. Juste que la convention est :
Mars=1, ..., Janvier=11, Février=12.
Cdlt,
}while ((j<=1)&&(j>=31));
Ce n'est pas un && qu'il faut mettre mais un ||.
Je te laisse corriger les autres while.
N'oublie pas d'afficher un '\n' avant la fin de ton programme pour forcer l'affichage.
Sinon au niveau de l'algorithme, il est correct. Juste que la convention est :
Mars=1, ..., Janvier=11, Février=12.
Cdlt,
#include <stdio.h> #include <stdlib.h> int main() { int j,m,a,r,q,jo,f; do { printf("\n donner le nbre de jour svp: \n"); scanf("%d",&j); }while ((j<=1)||(j>=31)); do { printf("\n donner le mois svp: \n"); scanf("%d",&m); }while ((m<=1)||(m>=12)); do { printf("\n donner l'annee svp: \n"); scanf("%d",&a); }while (a<=1900); if(m>3){ m=m-2; } else { m=m+10; a=a-1; r=a%100; q=a/100; } f= ((j + r) - (2*q) + (q/4) + (r/4)) + (((26 * m) - 2) / 10); printf("\n%d",f); jo=f%7; switch (jo){ case 1:printf(" c est lundi"); break; case 2:printf("c est mardi"); break; case 3:printf("c est mercredi"); break; case 4:printf("c est jeudi"); break; case 5:printf("c est vendredi"); break; case 6:printf("c est samedi"); break; case 7:printf("c est dimanche"); break; default :printf("erreur"); } return 0; }encore un probléme j lai affiché deja le f pour e tester il é d trés grand valeur comme 136 :/ et resultat est fausse de mm
Explications disponibles ICI
Merci d'y penser dans tes prochains messages.