je l'ai testé pour voir où était l'erreur que tu disais mais je n'ai pas cherché si il y avait des problèmes dans le calcul. cependant il y a des améliorations possibles au niveau syntaxique.
__________________________
............ Curtis: RTS 3D .............. ......
........... TeamMoteurProg...........
pourquoi moyenne=moyenne +1 ? C'est surprenant dans un calcul de moyenne.
En fait le vrai problème c'est la place de nbnote=nbnote-1. Il faut le mettre avant ta boucle for où tu calcule moyenne. La 2e solution (plus élégante) c'est d'initialiser nbnote=-1 au début. Et de l'incrémenter au tout début de ta boucle while de saisi de notes. Ce qui te supprime le nbnote=nbnote-1
D'ailleurs dans la boucle while de saisi de notes, i et nbnote ont le même rôle. Tu peux supprimer i de cette boucle.
#include<stdio.h>
#include<stdlib.h>
/*constante */
#define taillemax1 10
#define taillemax2 10
#define taillemax3 10
int main (void)
{
/*variable */
int nbnote, i, j, numeroeleve ,indiceaffichage;
float notetableau[taillemax1][taillemax2];
float moyentableau[taillemax3];
float moyenne;
float indicearrete;
char stop ;
/* ----debut du programme---- */
/* initialise i et j */
i = 0;
j = 0;
do
{
/* ----saisi note ----*/
nbnote=-1 ;
do
{
nbnote=nbnote+1 ;
printf ("saisir une note \n");
scanf ("%f", ¬etableau[nbnote][j]);
indicearrete = notetableau[nbnote][j] ;
}
while(indicearrete!=-1);
indicearrete=0.0 ;
/* Calcule Moyen */
moyenne = 0.0;
for (i = 0; i < nbnote; i = i + 1)
{
moyenne = moyenne + notetableau[i][j];
}
//moyenne=moyenne+1 ;
printf("moy: %f\n", moyenne);
moyentableau[j] = moyenne / nbnote;
j = j + 1;
printf ("arrete oui='o' non='n' \nreponse :");
scanf ("%s", &stop);
/* on initialise i pour la boucle */
}
while (stop != 'o' );
printf (" \n \n ");
/* -----affichage moyen ----*/
/* initialisation */
indiceaffichage=j;
numeroeleve=0 ;
j=0 ;
do
{
printf ("-eleve %d m :%f \n", j, moyentableau[j]);
numeroeleve = numeroeleve + 1;
j=j+1 ;
} while (indiceaffichage != numeroeleve) ;
/* ----fin du programme---- */
system ("pause");
return (0);
}