Tableau de struct en c
mathlo
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 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
A voir également:
- Tableau de struct en c
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
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.
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) :
merci encore pour ton aide fiddy... ;)
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... ;)