Problème en C, tableaux
jordan04
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
loupius -
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 !
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 !
A voir également:
- Problème en C, tableaux
- Tableaux croisés dynamiques - Guide
- Mise en forme tableau word - Guide
- Fusionner deux tableaux excel - Guide
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Musique / Radio / Clip
- Fusionner deux tableaux word ✓ - Forum Word
2 réponses
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.
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
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
Non, non, l'erreur ne se trouve pas que dans cette ligne:
On peut trouver aussi:
Il y en a peut-être d'autres, mais essayes déjà avec ces corrections.
Bon courage.
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.