我正在爲學校的一個程序工作,涉及到查找某些數組的統計數據,我必須找到的其中一個是差異,我有一個功能,但它爲一些原因,它一直返回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);
請提供[最小完整和可覈實的示例](https://stackoverflow.com/help/mcve)。另外,我覺得很難相信你從調試器中得不到任何東西。如果是這種情況,那麼也許你應該詢問如何使用調試器的幫助。 – kaylum
偏題:不需要if語句,因爲平方差會導致一個正數(即使差爲負數)。關於主題:沒有什麼能夠防止代碼計算差異,所以問題必須出現在未顯示的代碼中。換句話說,我同意@kaylum你需要發佈一個MCVE。 – user3386109
不同的變量名稱:varaince與方差 - printf不輸出變量,但功能方差的地址 –