Structures de données [Résolu]

Signaler
Messages postés
15
Date d'inscription
jeudi 18 décembre 2008
Statut
Membre
Dernière intervention
7 mars 2010
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
slt tt le monde

je voudrais Ecrire un programme en langage C qui permet la sasie d'une liste d'étudiants et affiche les noms ayant la moyenne.
un étudiant est enregistré par son nom, prénom, et les notes des quatre modules d'un semestre
merci d'avance

10 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
clique sur reponse acceptee stp
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
salut

c'est un tp que t'as donne ton prof ?

on ne fait pas les tps de cours des gens ici. tu peux commencer par tenter de le faire toi meme, et revennir quand t'auras juste un bug (parce-qu'on aide les gens, mais on ne les assiste pas.)
Messages postés
15
Date d'inscription
jeudi 18 décembre 2008
Statut
Membre
Dernière intervention
7 mars 2010

voila ce que j'ai fais:


#include <stdio.h>
struct etudiant
{
       char nom[20],prenom[20];
       long int CNE;
       float note1 ,note2,note3,note4,moy;
       };
int main()
{
    etudiant section [20];
    int i,n;
    printf("le nombre d'étudiants:");
    scanf("%i",&n);
    for(i=0;i<n;i++);
    {
    printf("étudiant numero %i",i+1);
    printf("nom et prenom:");
    scanf("%s%s",& sectionT[i].nom,& sectionT[i].prénom);
    printf("CNE:");
    scanf("%i",& sectionT[i].CNE);
    do
    {
    printf("note1:);
    scanf("%f",& note1);
    }
    while((note1<0)ll(note1>20));
     do
    {
    printf("note2:);
    scanf("%f",& note2);
    }
    while((note2<0)ll(note2>20));
     do
    {
    printf("note3:);
    scanf("%f",& note3);
    }
    while((note3<0)ll(note3>20));
     do
    {
    printf("note4:);
    scanf("%f",& note4);
    }
    while((note4<0)ll(note4>20));
    }
   
    moy=(note1+note2+note3+note4)/4;
                        /*affichage*/
    for(i=0;i<n;i++)
    {
    printf("étudiant numero %i ",i+1);
    printf("nom et prénom=%s %s",sectionT[i].nom, sectionT[i].prénom);
    printf("CNE=%i ", sectionT[i].CNE);
    printf("moy=%f ",sectionT[i].moy);
    }
     return 0;
    }
j'espère que quelqu'un puisse me venir en aide, pour corriger les erreurs
merci d'avance.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
et quelles sont ces erreurs ?

%i est un format de printf ? pour les entiers, c'est %d, pas %i
Messages postés
15
Date d'inscription
jeudi 18 décembre 2008
Statut
Membre
Dernière intervention
7 mars 2010

pour les entiers  relatif ,on peut ecrire %i ou %d,
Messages postés
452
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
19 décembre 2008
10
Et tu t'étonnes que ça ne compile pas?

Lorsque tu lis tes notes, il faut que tu les enregistre dans les données de ta strucure.
scanf("%f",&sectionT[i].note4); et non scanf("%f",&note4);

Une remarque sur ton programme, j'aurais créé un tableau pouvant contenir les notes dans ta structure, puis dans une boucle allant de 0 à 3, j'aurais demandé les notes...
Pour afficher les noms ayant la moyenne, il faut que dans ta boucle for qui gère l'affichage, tu fasses un if pour vérifier si la personne que tu testes à la moyenne!

--Vive le CSavon
Messages postés
15
Date d'inscription
jeudi 18 décembre 2008
Statut
Membre
Dernière intervention
7 mars 2010

#include <stdio.h>
struct etudiant
{
       char nom[20],prenom[20];
       long int CNE;
       float note1 ,note2,note3,note4,moy;
       };
int main()
{
    etudiant section [20];
    int i,n;
    printf("le nombre d'étudiants:");
    scanf("%i",&n);
    for(i=0;i<n;i++);
    {
    printf("étudiant numero %i",i+1);
    printf("nom et prenom:");
    scanf("%s%s",& sectionT[i].nom,& sectionT[i].prénom);
    printf("CNE:");
    scanf("%i",& sectionT[i].CNE);
   for(i=0;i<3;i++)

    do
    {
    printf("notei:);
    scanf("%f",& sectionT[i].notei);
    }
    while((notei<0)ll(notei>20));
     }

    moy=(note1+note2+note3+note4)/4;
                        /*affichage*/
    for(i=0;i<n;i++)
    {
    printf("étudiant numero %i ",i+1);
    printf("nom et prénom=%s %s \n
",sectionT[i].nom, sectionT[i].prénom);
    printf("CNE=%i \n
", sectionT[i].CNE);
if (section[i].moy < 0)
           printf("%4c\n", '*');
         else
           printf("%10.3f\n", section[i].moy);
    
    }
     return 0;
    }
Messages postés
15
Date d'inscription
jeudi 18 décembre 2008
Statut
Membre
Dernière intervention
7 mars 2010

Quand je veux compiler le prog,je trouve les erreurs suivants:
etudiant undeclared
et les quatre notes avec la moyenne sont undeclared
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
ne met pas :
etudiant section [20];

mais met :
struct etudiant section [20];
Messages postés
15
Date d'inscription
jeudi 18 décembre 2008
Statut
Membre
Dernière intervention
7 mars 2010

ah,oui ,tu as  raison,il faut écrire
 struct etudiant section [20];
merci à tous