fonction : calcul du nombre d'enrgistrements d'une table
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:
Code:
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);
} |
Le problème du programme c'est qu'il me returne toujours 1 à l'exécution. J'arrive pas à comprendre.
Vos contributions sont les bienvenues. Merci.