【问题标题】:Finding the Arithmetic Mean of an Array: C#求数组的算术平均值:C#
【发布时间】:2015-06-01 11:05:45
【问题描述】:

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

【问题讨论】:

  • 是的,您将它们相加并除以长度。就像您在一张纸上手动执行此操作一样。
  • I looked up a couple of similiar cases, but couldn't really find anything I was looking for你是所有计算机历史上第一个解决这个问题的人:)
  • 是的,但我想知道如何添加它们...
  • 好吧,你用 + 运算符添加 2 个整数。 sum = a + b;
  • 很明显,如果我们将两个连续的数字相加,但这是一个数组...

标签: c# arrays math mean


【解决方案1】:

如果你需要一个 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;
}

【讨论】:

    【解决方案2】:

    您可以通过多种方式执行此操作,但我会在您的 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 循环中执行此操作,但如果您没有太多数字要输入,它不会真正改变复杂性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-18
      • 2016-01-10
      • 2019-04-08
      • 1970-01-01
      • 2019-10-17
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多