Prob fonction d'affichage en C
Résolu/Fermé
A voir également:
- Prob fonction d'affichage en C
- Fonction si et - Guide
- Affichage double ecran - Guide
- Fonction moyenne excel - Guide
- Windows 11 affichage classique - Guide
- Comment agrandir l'affichage de l'écran - Guide
3 réponses
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
24 janv. 2009 à 15:59
24 janv. 2009 à 15:59
Il me semble que tu modifies les valeurs de tes dates localement à ta fonction encodage, du coup tu perds tes valeurs en sortant de la fonction.
edit : c'est bien ça
edit : c'est bien ça
Je situe pas trop bien tu pourrais me montrer?
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
24 janv. 2009 à 16:20
24 janv. 2009 à 16:20
Tout est dans le type du premier argument de ta fonction encodage.
Je n'ai jamais fait comme tu l'as fait donc je ne sais pas vraiment trop te dire ce que ça fait très exactement, mais en tout cas l'erreur vient bien de là.
Je l'aurais fait comme ça :
Je ne supporte pas les while() quand une for() suffit mais ça ne change rien ça.
Je n'ai jamais fait comme tu l'as fait donc je ne sais pas vraiment trop te dire ce que ça fait très exactement, mais en tout cas l'erreur vient bien de là.
Je l'aurais fait comme ça :
#include<stdio.h> #include<windows.h> #define MAX 50 void encodage (int Date[MAX][3], int ndate); void affichage (int Date[MAX][3], int ndate); int main() { int Date[MAX][3],ndate; do { printf("Saisir le nombre de dates a saisir:"); fflush(stdin); scanf("%d",&ndate); }while(ndate<=0 || ndate>MAX); //Fonction encodage encodage(Date,ndate); affichage(Date,ndate); return 0; } /********************************************************** /* */ /* input: ndate: nombre d'élément dans le tableau */ /* pt: Adresse du tableau */ /* */ /* process:lit les dates et les places dans le tableau */ /* dont l'adresse est donnée */ /* */ /* output:/ */ /**********************************************************/ void encodage (int Date[MAX][3], int ndate) { int mois, jours, annee, i; for(i = 0 ; i < ndate ; i++) { printf("Encoder le jour de la %de%ce date:", i+1, (i == 0) ? 'r' : 'm'); fflush(stdin); scanf("%d", &jours); Date[i][0] = jours; printf("Encoder le jour de la %de%ce date:", i+1, (i == 0) ? 'r' : 'm'); fflush(stdin); scanf("%d", &mois); Date[i][1] = mois; printf("Encoder le jour de la %de%ce date:", i+1, (i == 0) ? 'r' : 'm'); fflush(stdin); scanf("%d", &annee); Date[i][2] = annee; } } /********************************************************** /* */ /* input: ndate: nombre d'élément dans le tableau */ /* pt: Adresse du tableau */ /* */ /* process:Affiche les dates encodées */ /* */ /* output:/ */ /**********************************************************/ void affichage (int Date[MAX][3], int ndate) { int i; printf("Les Dates sont donc:\n"); printf("_____________________\n\n"); for(i = 0 ; i < ndate ; i++) { printf("%d / %d / %d \n\n", Date[i][0], Date[i][1], Date[i][2]); } }
Je ne supporte pas les while() quand une for() suffit mais ça ne change rien ça.