请问我这用数组输出平均值和标准差有什么问题?
编码如下,平均值结果正确,然而标准差是错误的。#include <stdio.h>
#include <math.h>
#include <stdlib.h>
// declare functions
float mean(float array[], int n);
float stdev(float array[], int n);
// define function
float mean(float array[], int n)
{
float arraysum = 0.;
int i;
for (i=0; i<n; i++)
{
arraysum = arraysum + array[i];
}
return arraysum/n;
}
//define function
float stdev(float array[], int n)
{
float arraysum = 0.;
float avgl = mean(array,n);
int i;
for (i=0; i<n; i++)
{
arraysum = (arraysum + array[i]-avg1)*(arraysum + array[i]-avg1);
}
return sqrt(arraysum/n);
}
int main()
{
float input[10];
float avg;
float sd;
printf("enter ten floats\n");
scanf("%f %f %f %f %f %f %f %f %f %f",&input[0],&input[1],&input[2],&input[3],&input[4],&input[5],&input[6],&input[7],&input[8],&input[9]);
printf("%f %f %f %f %f %f %f %f %f %f\n",&input[0],input[1],input[2],input[3],input[4],input[5],input[6],input[7],input[8],input[9]);
// call function 1
avg = mean(input,10);
printf("array mean = %f\n",avg);
// call function 2
sd = stdev(input,10);
printf("array stdev = %f\n",sd);
return 0;
}