Fonction ecart type

acrony -  
flo13142 Messages postés 74 Statut Membre -
Bonjour,

je travaille sur un petit programme qui a partir de données que je rentre doit me permettre de ressortir la moyenne et l'écart type de chacune des matières d'une classe a partir des notes des étudiants. soit 4 matières 10 étudiants, pour la moyenne ca va avec une boucle for j'entre les notes et je les stocke, avec une boucle for je calcule la moyenne de chaque matière, mais...pour l'écart type j'ai quelque soucis, j'ai voulu faire une fonction qui prends en paramètres un tableau de 10 éléments (mes 10 notes de chaque matières) et un double (la moyenne), j'utilise la fonction sqrt pour le calcul de la racine carrée, mais je pense que le code sera plus éloquent:

double standdev(int tab[10], double m)
{
tab[10] = {a, b, c, d, d, e, f, g, h, i, j};
standdev = (sqrt(((a - m) * (a - m) + (b - m) * (b - m) + (c - m) * (c - m) + (d - m) * (d - m) + (e - m) * (e - m) +
(f - m) * (f - m) + (g - m) * (g - m) + (h - m) * (h - m) + (i - m) * (i - m) + (j - m) * (j - m)) / 10));
return standdev;

pourriez-vous m'aider a trouver l'erreur (je suis un pur débutant)
A voir également:

1 réponse

flo13142 Messages postés 74 Statut Membre 18
 
Bonjour,

je ne comprend pas bien ce que tu veux faire avec la ligne :
tab[10] = {a, b, c, d, d, e, f, g, h, i, j}; 

si tu veux accéder à chacune des valeurs du tableau il faut faire tab[i], i allant de 0 à n.
la tu écrase ton tableau avec a,b,c...
je ferais le code suivant
{
int tmp=0;
for (int i = 0; i< tab.length; ++i){
 tmp+=(tab[i]-m) * (tab[i]-m);
}
return sqrt (tmp / tab.length);
0