Problème en C, tableaux

jordan04 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
 loupius -
Bonjour,

voici mon sujet :

écrire en c un programme dont le role est de faire saisir a user les notes de 10 eleves d'une classe dans chacune des 3 matieres , anglais , francais et math.
1)afficher a lécran la moyenne de chaque eleve
2)afficher a lecran la moyenne de toute la classe dans chaque matiere
3) trouver le meilleur eleve dans chaque matieres.

Jai commencé a faire mon programme mais je suis bloqué , il faut utilisé un tableau a deux dimensions
je narrive pas a resoudre le 1)
voici ce que j'ai fais sur DEV C++.

#include <stdio.h>
#include <stdlib.h>

int T[10][3],i,moy,j;

int main(int argc, char *argv[])
{
for(i=0;i<10;i++)
{
printf("Veuillez saisir la note de l'eleve N*%d de Math svp \n",i+1);
scanf("%d",&T[10][1]);
}
for(i=0;i<10;i++)
{
printf("Veuillez saisir la note de l'eleve N*%d de Francais svp\n ",i+1);
scanf("%d",&T[10][2]);
}
for(i=0;i<10;i++)
{
printf("Veuillez saisir la note de l'eleve N*%d d'Anglais svp\n ",i+1);
scanf("%d",&T[10][3]);


}

for(i=0;i<10;i++)
{
for (j=0;j<3;j++)
{
moy=moy+T[i][j]; \\ mon probleme ce trouve surement dans cette ligne \\
}

printf("la moyenne de l'eleve numero %d est %d\n",i+1,moy/3);
}


system("PAUSE");
return 0;
}

Je suis en bts ig1 si qqun pourrait maidé sa serait cool
Merci d'avance !

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Ton erreur se situe au niveau de l'affectation des variables. Tu n'utilises pas les indices des boucles for pour initialiser les différentes cases du tableau.
Evite les variables globales, surtout quand tu en as pas besoin ;).
De plus, en C, les tableaux commencent à 0.

#include <stdio.h>

#define NB_EL 10
#define NB_MAT 3

int main(void) {
   int T[NB_EL][NB_MAT];
   char *matiere[]={"Math","Francais","Anglais"};
   int moy;

   //initialisation des notes
   for(int i=0;i<NB_EL;i++){
       for(int j=0;j<NB_MAT;j++){
           printf("note de %s de l'élève %d : ",matiere[j],i+1);
           scanf("%d",&T[i][j]);
       }
    }

   getchar(); //mieux que system("PAUSE"); ;)
   return 0;
}

Pour le calcul des moyennes, ta méthode est presque bonne. Tu as juste oublié de réinitialiser ta variable moy à 0.
Tu le fais juste avant de passer au calcul de la moyenne d'un autre élève.
Cdlt
0
loupius
 
Non, non, l'erreur ne se trouve pas que dans cette ligne:
moy=moy+T[i][j]; \\ mon probleme ce trouve surement dans cette ligne \\ 
J'aurais plutôt mis:
somme = somme + T[i][j]
et je n'aurais pas oublié d'initialiser somme à 0 pour chaque élève.
On peut trouver aussi:
scanf("%d",&T[10][1]);
scanf("%d",&T[10][2]);
scanf("%d",&T[10][3]);
car le premier indice est guidé par i et le second ne peut aller que de 0 à 2 (soit 3 valeurs).
Il y en a peut-être d'autres, mais essayes déjà avec ces corrections.
Bon courage.
0