Programme en C
Résolu/Fermé
Yazou92
Messages postés
181
Date d'inscription
jeudi 15 janvier 2009
Statut
Membre
Dernière intervention
30 avril 2013
-
5 mars 2009 à 19:50
Yazou92 Messages postés 181 Date d'inscription jeudi 15 janvier 2009 Statut Membre Dernière intervention 30 avril 2013 - 6 mars 2009 à 17:43
Yazou92 Messages postés 181 Date d'inscription jeudi 15 janvier 2009 Statut Membre Dernière intervention 30 avril 2013 - 6 mars 2009 à 17:43
A voir également:
- Programme en C
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Mettre en veille un programme - Guide
- Forcer la fermeture d'un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
6 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
5 mars 2009 à 22:28
5 mars 2009 à 22:28
Un tableau de pointeurs sur des char est un tableau dont chacune des cases pointera sur une adresse mémoire contenant un mot. Voici un tableau de pointeur sur un char : char *nomMois[]={"Janvier","Fevrier",...};
char *nomMois[5], va créer un tableau de 5 cases de type char*. Ainsi nomMois[0] contiendra une adresse mémoire correspondant à l'adresse de "Janvier". Donc puts(nomMois[0]) ou printf("%s\n",nomMois[0]); affichera Janvier à l'écran.
char *nomMois[5], va créer un tableau de 5 cases de type char*. Ainsi nomMois[0] contiendra une adresse mémoire correspondant à l'adresse de "Janvier". Donc puts(nomMois[0]) ou printf("%s\n",nomMois[0]); affichera Janvier à l'écran.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
5 mars 2009 à 21:29
5 mars 2009 à 21:29
Salut,
Oui c'est vrai que tu peux vraiment simplifier.
Tout d'abord, tu peux utiliser un tableau de pointeurs sur char pour contenir le nom des mois.
Par exemple : char *nomMois[]={"Janvier","Fevrier",...};
Tu peux aussi utiliser un tableau d'int pour contenir le nombre de jours par mois (année non bissextile).
Par exemple : int nbJoursParMois[]={31,28,31,...};
Cela t'évitera déjà pleins de if.
Pour l'entrée de la date, tu peux faire simplement : scanf("%d/%d/%d",&jour,&mois,&annee);
Ainsi tu récupères en une ligne, jour mois et annee.
Pour le jour d'après :
Tu peux aussi utiliser une structure pour regrouper jour, mois et annee.
Voilà, je pense que tu as de quoi d'améliorer ton code. Je pense que tu peux diviser par trois le nombre de lignes.
Cdlt
Oui c'est vrai que tu peux vraiment simplifier.
Tout d'abord, tu peux utiliser un tableau de pointeurs sur char pour contenir le nom des mois.
Par exemple : char *nomMois[]={"Janvier","Fevrier",...};
Tu peux aussi utiliser un tableau d'int pour contenir le nombre de jours par mois (année non bissextile).
Par exemple : int nbJoursParMois[]={31,28,31,...};
Cela t'évitera déjà pleins de if.
Pour l'entrée de la date, tu peux faire simplement : scanf("%d/%d/%d",&jour,&mois,&annee);
Ainsi tu récupères en une ligne, jour mois et annee.
Pour le jour d'après :
int nbJours=nbJoursParMois[mois-1]; if (isBissextile(annee)) nbJours++; if ( jour<nbJours) { jourSuiv=jour+1; } else if (mois < 12) { jourSuiv=1; moisSuiv=mois+1; } else { joursSuiv=1; moisSuiv=1; anneeSuiv=annee+1; }
Tu peux aussi utiliser une structure pour regrouper jour, mois et annee.
Voilà, je pense que tu as de quoi d'améliorer ton code. Je pense que tu peux diviser par trois le nombre de lignes.
Cdlt
Yazou92
Messages postés
181
Date d'inscription
jeudi 15 janvier 2009
Statut
Membre
Dernière intervention
30 avril 2013
16
5 mars 2009 à 22:23
5 mars 2009 à 22:23
Merci beacoup,
effectivement ça me raccourci le code.
Mais fiddy, je comprend pas très bien quand vous dites que je doit utiliser une table de pointeur sur char pour contenir les mois.
Je fais du C que depuis 6 mois, je suis encore qu'un apprenti de premiere année, si vous pouvez être plus explisite car mes connaissance en language C sont enore limiter, DSL ^^
Merci d'avance
effectivement ça me raccourci le code.
Mais fiddy, je comprend pas très bien quand vous dites que je doit utiliser une table de pointeur sur char pour contenir les mois.
Je fais du C que depuis 6 mois, je suis encore qu'un apprenti de premiere année, si vous pouvez être plus explisite car mes connaissance en language C sont enore limiter, DSL ^^
Merci d'avance
Yazou92
Messages postés
181
Date d'inscription
jeudi 15 janvier 2009
Statut
Membre
Dernière intervention
30 avril 2013
16
5 mars 2009 à 22:41
5 mars 2009 à 22:41
Ah OK
Je comprend mieux, donc cette opération va m'éviter tous les breaks, mais es-que je doit déclarer le nomMois comme une variable ou je le laisse comme il est??
Je comprend mieux, donc cette opération va m'éviter tous les breaks, mais es-que je doit déclarer le nomMois comme une variable ou je le laisse comme il est??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
6 mars 2009 à 00:43
6 mars 2009 à 00:43
char *nomMois[]={"Janvier","Fevrier",...};
C'est une variable. N'oublie pas de remplacer les trois petits points par les autres mois de l'année quand même.
De même pour :
int nbJoursParMois[]={31,28,31,...};
C'est une variable. N'oublie pas de remplacer les trois petits points par les autres mois de l'année quand même.
De même pour :
int nbJoursParMois[]={31,28,31,...};
Yazou92
Messages postés
181
Date d'inscription
jeudi 15 janvier 2009
Statut
Membre
Dernière intervention
30 avril 2013
16
6 mars 2009 à 17:43
6 mars 2009 à 17:43
OKi merci a vous tous, j'ai fais un 5.2 sur 6 a mon devoir
C gentil de votre aide
C gentil de votre aide