我正在研究一个学校的程序,其中包括查找某个数组的某些统计数据,我必须找到的一个方面是方差,我有一个功能,但由于某种原因它会一直返回0
double variance(double * array, unsigned int size, double value)
{
double variance = 0; //Variable used to store the variance
for (unsigned int i = 0; i < size; ++i)
{
if (value > array[i]) //If statement checks to see if you need to subtract the value from the array or the other way around
{
variance += pow((value - array[i]), 2);
}
else
{
variance += pow((array[i] - value), 2);
}
}
variance /= size;
return variance;
}
我已尝试使用调试器进行操作,但我什么也没出来
我怎么称呼它:
double varaince = variance(array, size, mean);
printf("\nVariance: %.3lf", variance);
答案 0 :(得分:2)
由@ammoQ评论
double varaince = variance(array, size, mean);
// function name used here.
// printf("\nVariance: %.3lf", variance);
// Use variable name
printf("\nVariance: %.3lf", varaince);
答案 1 :(得分:-2)
variance/=size;
应该是
variance/=(double)size;
大小本身存储为二进制整数。