Tableau de struct en c
mathlo
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'essaie de faire un petit programme en c pour classer/ afficher les notes du class a un controle...
voila mon main
#include <stdio.h>
#include <stdlib.h>
#include "header.h"
int main()
{
int nbre=5, compteur=0;
classement personne[];
printf("Entrez la note puis le nom de l'eleve...\n");
while(compteur<nbre)
{
printf("eleve n°%d", compteur+1);
scanf("%d", &personne[compteur].note);
scanf("%s", &personne[compteur].nom);
compteur++;
}
compteur=0;
printf("on a donc :\n");
while(compteur< nbre)
{
printf("%s -> %d", personne[compteur].nom, personne[compteur.note]);
compteur++;
}
return 0;
}
ma struct dans un autre fichier .c
typedef struct classement classement
{
int note;
char nom[25];
};
et mon header
typedef struct classement classement;
-------------------------
mais ca bug des le debut au moment de la déclaration du tableau de personnes si quelquun a une idée....
merci d'avance
j'essaie de faire un petit programme en c pour classer/ afficher les notes du class a un controle...
voila mon main
#include <stdio.h>
#include <stdlib.h>
#include "header.h"
int main()
{
int nbre=5, compteur=0;
classement personne[];
printf("Entrez la note puis le nom de l'eleve...\n");
while(compteur<nbre)
{
printf("eleve n°%d", compteur+1);
scanf("%d", &personne[compteur].note);
scanf("%s", &personne[compteur].nom);
compteur++;
}
compteur=0;
printf("on a donc :\n");
while(compteur< nbre)
{
printf("%s -> %d", personne[compteur].nom, personne[compteur.note]);
compteur++;
}
return 0;
}
ma struct dans un autre fichier .c
typedef struct classement classement
{
int note;
char nom[25];
};
et mon header
typedef struct classement classement;
-------------------------
mais ca bug des le debut au moment de la déclaration du tableau de personnes si quelquun a une idée....
merci d'avance
3 réponses
-
Bonjour,
classement personne[];
Tu déclares un tableau mais ne précises pas la taille. Donc forcément ça bug lorsque tu fais personne[compteur].
Si nbre est fixe et n'est pas choisi par l'utilisateur, je te conseille d'utiliser de faire : "#define NBRE 5" (sans point virgule) juste en dessous des #include.
Ensuite, tu pourras mettre : classement personne[NBRE];
N'oublie pas de remplacer nbre par NBRE dans la suite de ton programme.
scanf("%s", &personne[compteur].nom);
Enlève l'esperluette (&). Il n'en faut pas.
printf("%s -> %d", personne[compteur].nom, personne[compteur.note]
erreur de frappe je pense : personne[compteur].note fonctionnera mieux.
Tiens-nous au courant. Et merci la prochaine fois de mettre ton code dans des balises "code" (à droite du bouton souligné"). Sinon c'est illisible. -
merci beaucoup de ton aide....
alors jai essayé de corriger comme tu m'as dit...
j'ai simplifié mon code, pour avoit tout dans le main et y a plus d'erreurs... je lance le programme et la... apres la saisie de la premiere note ca bug -_- :(
je met mon nouveau code (avec les balises :p) :
#include <stdio.h> #include <stdlib.h> #define NBRE 5 int main() { int compteur=0; typedef struct { int note; char nom[100]; } clas; clas test[5]; printf("Entrez la note puis le nom de l'eleve...\n"); while(compteur<NBRE) { printf("eleve n_%d : ", compteur+1); scanf("%d", test[compteur].note); scanf("%s", test[compteur].nom); compteur++; } compteur=0; printf("on a donc :\n"); while(compteur< NBRE) { printf("%s -> %d", test[compteur].nom, test[compteur].note); compteur++; } return 0; }
merci encore pour ton aide fiddy... ;) -
En attendant que Fiddy revienne de dîner, tu peux essayer:
scanf("%d", &test[compteur].note);et puisprintf("%s -> %d\n", test[compteur].nom, test[compteur].note);serait sans doute mieux.
Bonne continuation.