Structures de données

Résolu
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010 - 18 déc. 2008 à 12:52
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 19 déc. 2008 à 20:04
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

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 déc. 2008 à 20:04
clique sur reponse acceptee stp
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
18 déc. 2008 à 14:07
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.)
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010
19 déc. 2008 à 08:59
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.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 déc. 2008 à 09:23
et quelles sont ces erreurs ?

%i est un format de printf ? pour les entiers, c'est %d, pas %i

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010
19 déc. 2008 à 09:34
pour les entiers  relatif ,on peut ecrire %i ou %d,
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
19 déc. 2008 à 14:56
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
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010
19 déc. 2008 à 15:48
#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;
    }
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010
19 déc. 2008 à 16:09
Quand je veux compiler le prog,je trouve les erreurs suivants:
etudiant undeclared
et les quatre notes avec la moyenne sont undeclared
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 déc. 2008 à 18:51
ne met pas :
etudiant section [20];

mais met :
struct etudiant section [20];
ajouaou Messages postés 15 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 7 mars 2010
19 déc. 2008 à 19:53
ah,oui ,tu as  raison,il faut écrire
 struct etudiant section [20];
merci à tous
Rejoignez-nous