Bonjour a tous, je cherche a faire un programme en console: voila le schema, c'est un programme qui calcule la moyenne de plusieurs eleves d'une classe connaissant le nombre d'eleves, le nombres de matieres et le coefficient de chaque matieres, le probleme que j'ai est que, lorsqu'on entre les matieres et les coefficients du premier eleve, cela calcule comme il faut mais par la suite les calcules sont erronés. Je vais vous montrer le code source, compiler le entrer par exemple "12" comme note de chaque matiere, et "1" comme coefficient; pour le premier eleve la moyenne obtenue est "12" normale. Ok, maintenant pour le second, entre comme note "10" et "1" comme coefficient, voyez le resultat, je ne comprend pas, pourtant mon code semble correcte. Ce serait aimable de votre part merci:
Code:#include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { int coef[100]; int note[100]; int eff,nbmat,i,k; int somecoef=0; int moy=0; int gene; printf("-------------Programme de calcul des moyennes de eleves---------------------\n\n"); printf("Quel est l'effectif de la classe: "); scanf("%d",&eff); while(eff<=0) { printf("Entrer un effectif correcte: "); scanf("%d",&eff); } printf("\nQuel est le nombre de matiere: "); scanf("%d",&nbmat); while(nbmat<=0) { printf("Veuillez entrer un nombre correcte: "); scanf("%d",&nbmat); } for(i=1;i<=eff;i++) { printf("\n\n||||eleve %d||||| \n\n",i); for(k=1;k<=nbmat;k++) { printf("\nNote de la matiere %d: ",k); scanf("%d",¬e[k]); while(note[k]<0 || note[k]>20) { printf("Entrer une note valide: "); scanf("%d",¬e[k]); } printf("Coefficient de la matiere %d: ",k); scanf("%d",&coef[k]); while(coef[k]<=0) { printf("Il faut un vrai coefficient: "); scanf("%d",&coef[k]); } somecoef=somecoef+coef[k]; moy=moy+(note[k]*coef[k]); } gene=moy/somecoef; printf("La moyenne de leleve %d est: %d\n\n",i,gene); } system("PAUSE"); return 0; }
-----