Je ne vois pas de globales, c'est juste une structure. Tu voudrais le mettre ou ce bout de code toi ?Envoyé par diogene
Je ne vois pas de globales, c'est juste une structure. Tu voudrais le mettre ou ce bout de code toi ?Envoyé par diogene
merci il me semblait aussi
Je ne vois pas de globales, c'est juste une structure. Tu voudrais le mettre ou ce bout de code toi ?
tab sauf erreur de ma part est une variable déclarée en dehors de toute fonction et est du type tableau de struct etu
Publication : Concepts en C
Mon avatar : Glenn Gould
--------------------------------------------------------------------------
Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
1- D'abord et surtout soigne l'indentation du programme
2- tu définis maxetu et maxcotes : tu devrais donc les utiliser et on ne devrait pas voir de 25 ou de 3 dans ton programme. Sinon, ce n'était pas la peine
3- supprime la variable globale tab : les variables globales ne sont pas une bonne habitude à prendre. Elles sont dangereuses dès que le programme devient un tant soit peu complexeet passe cette variable en argument aux fonctions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 struct etu { .... }; void main () { struct etu tab[maxetu]; .... }
4- n'écris pas des choses inutiles qui peuvent troubler le lecteur. exemple
renvoie toujours 0. Autant qu'il ne renvoie rien! Dans cette déclaration le 5 ne sert à rien. A supprimer. Idem pour lire_int
Code : Sélectionner tout - Visualiser dans une fenêtre à part int lire_float (char nbf[5])
5- Lire_mat renvoie 1 ou 2. C'est bizarre et on se demande pourquoi. Le code ne l'utilise que pour comparer à 1. D'après son code, elle cherche si le matricule existe dans le tableau, ce qui ne correspond pas à son nom. Les identificateurs doivent être choisi pour être au lecteur une source d'informations, pas pour les induire en erreur. De plus, son code est faux, puisque la valeur de trouve ne dépend que du DERNIER élément du tableau. La variable matt[5] ne sert à rien et le code est tordu : pourquoi mettre trouve à 1 pour renvoyer 2 et à 0 pour renvoyer 1 ? Il suffit de qq chose du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part void lire_float (char *nbf)
qui permet des tests du genre while(Existe_mat(-----
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 int Existe_mat ( int m) { int i; for (i=0;i<maxetu;i++) if (m==tab[i].mat) return 1; return 0; }
6- lire_cotes : à quoi sert le else; ?
7- init n'utilise pas maxetu et maxcotes . Son strcpy est une grosse erreur.
8- etc ...
Publication : Concepts en C
Mon avatar : Glenn Gould
--------------------------------------------------------------------------
Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
Huh! Nettoyage des yeux, please! 'tab' est un tableau global de structures.Envoyé par gl
A début du source :Tu voudrais le mettre ou ce bout de code toi ?
Dans main()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 struct etu { int mat; char nom[20]; float cote[maxcotes]; };
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part struct etu tab[maxetu];
si le tableau est trop grand.
Code : Sélectionner tout - Visualiser dans une fenêtre à part static struct etu tab[maxetu];
Et ces paramètres pour chaques fonctions qui en ont besoin :
Code : Sélectionner tout - Visualiser dans une fenêtre à part f (struct etu *tab, size_t n)
Pas de Wi-Fi à la maison : CPL
A Emmanuel : Entièrement d'accord
Publication : Concepts en C
Mon avatar : Glenn Gould
--------------------------------------------------------------------------
Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
Oups, je l'avais vu a l'interieur des accolades. Effectivement c'est bien une globale.Envoyé par diogene
Moi aussi ! J'avais juste lu ca trop rapidement.Envoyé par diogene
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager