查找数组的算术平均值:C#

时间:2015-03-28 00:26:55

标签: c# arrays math mean

语言: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

2 个答案:

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