语言:C#
我有一个用户输入的数字数组,我想找到数组的算术平均值。
我查了几个类似的案例,但无法找到我想要的任何东西......无论如何,这是代码:
Console.WriteLine("\n How many numbers do you want to average? \n");
int nNumtoAvg = Convert.ToInt32(Console.ReadLine());
int[] nListToAverage = new int[nNumtoAvg];
for (int i = 0; i < nNumtoAvg; i++)
{
Console.WriteLine("Enter whole number #" + (i + 1) + ": ");
string sVal = Console.ReadLine();
int nValue = Convert.ToInt32(sVal);
nListToAverage[i] = nValue;
}
现在,我该怎么做才能将数组中的所有数字加在一起,然后将其除以array.Length?提前致谢:D
答案 0 :(得分:0)
你可以做很多种方法但是我会在你的for循环之后做以下几点。
int sum = 0;
for (int i = 0; i < nNumtoAvg; i++)
sum += nListToAverage[i];
int result = sum / nNumtoAvg; // result now has the average of those numbers.
你也可以在你已经拥有的for循环中完成它,但如果你没有很多数字要输入,那么它在复杂性方面确实没有区别。
答案 1 :(得分:0)
如果您需要int作为结果,那么:
int average = Convert.ToInt32(nListToAverage.Average());
否则,你会得到一个更精确的答案:
double average = nListToAverage.Average();
如果你需要先添加所有项目,你也可以这样做:
int average = nListToAverage.Sum() / nListToAverage.Length;
或者老派,展示你的工作方式:
int sum = 0;
int average = 0;
int numItems = nListToAverage.Length;
if (numItems > 0)
{
for(int i = 0; i < numItems; i++)
{
sum += nListToAverage[i];
}
average = sum / numItems;
}