查找方差的函数返回0

时间:2016-02-25 22:21:09

标签: c function variance

我正在研究一个学校的程序,其中包括查找某个数组的某些统计数据,我必须找到的一个方面是方差,我有一个功能,但由于某种原因它会一直返回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);

sample output

2 个答案:

答案 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;

大小本身存储为二进制整数。