簡體   English   中英

查找方差的函數返回0

[英]Function to find variance returns 0

我正在為一個學校的程序工作,該程序涉及查找數組的某些統計信息,我要查找的一件事是方差,我為此創建了一個函數,但由於某種原因,它始終返回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);

樣本輸出

正如@ammoQ評論

double varaince = variance(array, size, mean);

//                         function name used here.
// printf("\nVariance: %.3lf", variance);

//                       Use variable name
printf("\nVariance: %.3lf", varaince);
    variance/=size;

應該

    variance/=(double)size;

大小單獨存儲為二進制整數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM