Bonsoir tout le monde,
Voila j'ai fait une petite fonction qui calcule le nombre d'enregistrements d'une table quelconque. Je l'ai compilé sans faute mais le problème est qu' l'execution il me donne toujours 1 alors que dans la table il ya plus d'1 enr.
Voici le code:
Le problème du programme c'est qu'il me returne toujours 1 à l'exécution. J'arrive pas à comprendre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 #include <stdio.h> #include <conio.h> #include <string.h> #define MAXENR 30 // taille maxmumun de la table struct t_enr // une structure qui permet d'encoder un numero matricule et un nom { int matr; char nom[30];}; void remplirTable(struct t_enr* t) // Une procédure qui permet d'encoder // et la condition d'arrêt est matr = 0 { int i=0; printf(" Matricule: "); scanf("%d", &t[i].matr); while( t[i].matr != 0) { printf(" Nom: "); gets(t[i].nom); printf(" Matricule: "); scanf("%d", &t[i].matr); } } int Haut(struct t_enr* t) /* Voila la fonction qui me permet de calculer la taille de la table. Elle returne le numero du dernier enregistrement qui correspond à la taille de la table*/ { int h=1; while (t[h].matr) h++; return h-1;} void main() // ma fonction main() { struct t_enr tb[MAXENR]; remplirTable(tb); // je remplis la table int h = Haut(tb); // j'appelle la fonction qui pemet de calculer la taille de la table printf("Le nombre des enregistrements est %d", h); }
Vos contributions sont les bienvenues. Merci.
Partager