Bonjour,
j'ai deja posté de l'aide sur le forum mais depuis j'ai avancé,mais il me reste un dernier probleme: les moyennes des etudiants sont identiques, c'est la derniere qui est affiché plusieurs fois.J'ai donc mis dans la structure etudiant "note[]" mais ça ne marche toujours pas j'ai des erreurs, je pense que ça vient que je ne sache pas comment on calcule la moyenne de chaque etudiant. Merci d'avance pour votre aide.
Voici l'enoncé du projet:
On considere un fichier qui contient les notes d'un groupe d'etudiant.Pour chaque etudiant nous avons son nom,son prenom,et une liste correspondant à ses notes obtenus pour 6 matieres.
Pour chaque matiere on a 2 informations:le coefficient(à utiliser pour calculer la moyenne generale) et la note.
_Realiser une application qui permet de:
_Remplir le fichier
_Calculer la moyenne de chaque etudiant
_Afficher un tableau recapitulatif dans lequel on donne pour chaque etudiant sa moyenne generale et son rang dans le groupe.
Voici mon programme:
[cpp]
//Fichiers en tete
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
//Declaration des fonctions
float moyenne(etudiant t[],float coef[]);
float max(float[],int);
int ind_min(float[],int);
void tri(float[],float[],int);
//Fonction principale
main()
{
etudiant W[50],a;
int j,i,N,n,ind,X;
float M,coef[50],m,w[50],V[50];
FILE* st;
//Saisie du nompbre d'etudiant
printf("entrer le nombre d'etudiant\n" );
scanf("%d",&N);
if(N<=0)
printf("erreur" );
//Saisie des informations pour les N étudiants
for (j=0;j<N;j++)
{
printf("Entrer le nom et le prenom de l'etudiant %d\n",j+1);
scanf("%s %s",&W[j].nom,&W[j].prenom);
}
//Saisie des coef
for(i=0;i<=5;i++)
{
printf("entrer le coef de la matiere %d\n",i+1);
scanf("%f",&coef[i]);
}
if(coef<=0)
printf("Erreur" );
//Saisie des notes
for(j=0;j<N;j++)
{
printf("Notes de l etudiant %d\n",j+1);
for(i=0;i<=5;i++)
{
printf("entrer la note de la matiere %d:\n",i+1);
scanf("%f",&W[i].note);
//if((note[i]<0) ||(note[i]>20))
// printf("Erreur" );
}
}
//Appel de la fct moyenne
for(i=0;i<N;i++)
{
M = moyenne(W,coef);
V[i]=M;
printf("la moyenne de l etudiant %d est %f\n",i+1,V[i]);
}
//Creer un fichier appelé etudiant.txt
st = fopen ("Notes_etudiant.txt","w" );
//enregistrement du fichier
for(j=N,X=0;j>1;j--)
X=X+j;
for(i=0;i<N;i++)
fprintf(st,"%s %s %f rang:%d\n",W[i].nom,W[i].prenom,V[i],X);
//definition de la fonction max
float max(float V[],int N)
{
float m;
int i;
i=2;
m= V[1];
for(i=1;i<N;i++)
{
if(V[i]>m);
m=V[i];
}
return(m);
}
//definition de la fonction ind_min
int ind_min(float V[],int N)
{
float m;
int i,ind;
m=V[0];
ind=0;
for(i=1;i<N;i++)
{
if(V[i]<m)
{
m=V[i];
ind=i;
}
}
return (ind);
}
//definition de l fonction tri
void tri(float V[],float w[],int N)
{
int i,j,ind,m;
m=max(V,N);
for(j=0;j<N;j++)
{
ind=ind_min(V,N);
w[j]=V[ind];
V[ind]=m;
}
}