Langage C: écrire un programme en C
Fermé
Nelson
-
23 mars 2022 à 12:42
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 4 avril 2022 à 10:58
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 4 avril 2022 à 10:58
A voir également:
- Langage C: écrire un programme en C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Dev-Pascal - Télécharger - Édition & Programmation
3 réponses
choubaka
Messages postés
39407
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
9 décembre 2024
2 104
23 mars 2022 à 12:44
23 mars 2022 à 12:44
Bonjour
Il te suffit de mettre ton code ici et nous pourrons te corriger..
Utilise bien les balises pour poster le code.
Maintenant, il ne faut pas espérer que nous fassions tes devoirs à ta place.
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
Il te suffit de mettre ton code ici et nous pourrons te corriger..
Utilise bien les balises pour poster le code.
Maintenant, il ne faut pas espérer que nous fassions tes devoirs à ta place.
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 094
Modifié le 1 avril 2022 à 16:38
Modifié le 1 avril 2022 à 16:38
Quand j'ai un problème pas évident à résoudre, j'essaye de le décomposer en problèmes plus simples à résoudre, me permettant d'arriver au but.
If y a deux choses "difficiles" : déterminer le nombre de jours pour un mois et gérer le cas particulier des années bissextiles pour le mois de février. Pour les mois, un simple test de bornage de 1 à 12 suffit. Pour les années, si tu n'as pas d'exigences particulières, tu pourrais te contenter de ne rien vérifier, à moins que veuilles vérifier que la date fournie est bien une date à partir du 15 octobre 1582 (ton programme se base sur la répartition des douze mois du calendrier grégorien).
Alors, une façon de faire pourrait être :
If y a deux choses "difficiles" : déterminer le nombre de jours pour un mois et gérer le cas particulier des années bissextiles pour le mois de février. Pour les mois, un simple test de bornage de 1 à 12 suffit. Pour les années, si tu n'as pas d'exigences particulières, tu pourrais te contenter de ne rien vérifier, à moins que veuilles vérifier que la date fournie est bien une date à partir du 15 octobre 1582 (ton programme se base sur la répartition des douze mois du calendrier grégorien).
Alors, une façon de faire pourrait être :
- de commencer par écrire une fonction
int is_leap_year(int year);
qui retourne 0 (faux) si l'année n'est pas bissextile et 1 ou toute autre valeur (vrai) si elle l'est - une fois que cette fonction est testée, et au point, en second lieu, faire une fonction
int days_in_month(int month, int year);
qui retourne le nombre de jours dans un mois donné, cette fonction utilisantis_leap_year()
pour traiter le cas du mois de février - une fois que cette fonction est au point, écrire une fonction
int is_valid_date(int day, int month, int year);
et tester cette fonction devient facile
#include <stdio.h> int main() { int j,m,a,bissextile=0,date_valide=0; printf("saisir le jour: "); scanf("%d",&j); printf("saisir le mois: "); scanf("%d",&m); printf("saisir l'annee: "); scanf("%d",&a); if ((a %400 == 0)||((a%4==0)&&(a%100))) bissextile=1; if ((((m==1)||(m==3)||(m==5)||(m==7)||(m==8)||(m==10)||(m==12))&&((j>0)&&(j<=31)))||(((m==4)||(m==6)||(m==9)||(m==11))&&((j>0)&&(j<=30)))||((bissextile)&&(m==2)&&((j>0)&&(j<=28)))||((bissextile==0)&&(m==2)&&((j>0)&&(j<=27)))) date_valide=1; if (date_valide) printf("la date %d/%d/%d est une date valide.",j,m,a); else printf("la date %d/%d/%d n'est pas une date valide.",j,m,a); return 0; }
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 094
Modifié le 4 avril 2022 à 11:20
Modifié le 4 avril 2022 à 11:20
Bonjour jaouadi,
Il y a, au moins, deux erreurs dans ta ligne 15, qui est très longue et difficile à lire.
Si le mois est février, ce mois peut avoir 29 jours les années bissextiles et 28 jours les années non bissextiles.
La date 28-02-2021 est une date valide, mais ton code indique le contraire.
La date 29-02-2024 est une date valide, mais ton code indique le contraire.
Dal
Il y a, au moins, deux erreurs dans ta ligne 15, qui est très longue et difficile à lire.
Si le mois est février, ce mois peut avoir 29 jours les années bissextiles et 28 jours les années non bissextiles.
La date 28-02-2021 est une date valide, mais ton code indique le contraire.
La date 29-02-2024 est une date valide, mais ton code indique le contraire.
Dal