我負責打印一組數字的一組數字的平均值和方差,並且我需要對我所做的平均值做一個參考。但我不明白我現在可以打印什麼樣的平均值。當我運行程序時,我正在打印0。這是我的代碼:打印一個ref變量
static double varianceValue(ref double avg, params double[] intValues)
{
double sum = 0;
double f = 0;
double number = 0;
double sv = 0;
double variance= 0;
foreach (int value in intValues)
{
sum += value;
}
for (int i = 0; i < intValues.Length; i++)
{
number = intValues[i];
avg = sum/intValues.Length;
f = number - avg;
sv += Math.Pow(f, 2);
}
variance = sv/(intValues.Length - 1);
return variance;
}
static void Main(string[] args)
{
double avg = 0;
Console.WriteLine("The avg of the variables in the array are: {0}", varianceValue(ref avg));
Console.WriteLine("\nThe variance of 11, 13, 17, 19, 23 is: {0}", varianceValue(ref avg, 11.0, 13.0, 17.0, 19.0, 23.0));
Console.ReadKey();
}
單步執行程序。 – 2013-03-21 00:07:23
看起來像你直接分配給'avg'(因此覆蓋它的值),沒有必要將它作爲'ref'參數,而是將它作爲'out'參數或從函數返回一個結構或元組。 – Dai 2013-03-21 00:08:34
另一個不錯的選擇是返回Pair,平均值和方差的函數。 –
Dialecticus
2013-03-21 00:12:34