【问题标题】:How to get average of columns in a 2d array如何获取二维数组中列的平均值
【发布时间】:2015-04-06 06:59:16
【问题描述】:

我刚刚开始使用二维数组,但似乎无法弄清楚如何获得每列的平均值。我正在使用 for 循环让用户输入数据(学生成绩),然后使用 for 循环来显示用户输入的信息。但是显示信息后,我想显示每列的平均值。我应该怎么做才能得到每列的平均值?

这是我目前的代码

    static void Main(string[] args)
    {
        double[,] grades = new double[2, 3];
        double result;



        for (int i = 0; i < 2; i++)
        {

            for (int j = 0; j < 3; j++)
            {
                Console.Write("Enter Grade " + (j + 1) + " For Group" + (i + 1) + ":   ==>> ");


                if (double.TryParse(Console.ReadLine(), out result)) grades[i, j] = result;
                else
                {
                    Console.WriteLine("*** INVALID GRADE ENTERED. PLEASE REENTER.");

                }
            }

        }





        for (int row = 0; row < 1; row++)
        {
            Console.WriteLine();
            Console.Write("   Group " + (row + 1) + ":        ");
            Console.WriteLine("   Group " + (row + 2) + ":   ");
            Console.Write("===========        ===========");

            for (int col = 0; col < 3; col++)
            {
                //String.Format("{0,-10} | {1,-10} | {2,5}",
                //make pring for execise 2 Console.Write(string.Format("{0,-5}", grades[row, col]));
                Console.WriteLine();
                Console.Write(string.Format("{0,-9}", ""));
                Console.Write(string.Format("{0,-20}",grades[0, col]));
                Console.Write(grades[1,col]);



            }
            Console.WriteLine();
            Console.WriteLine("===========        ===========");


        }



        Console.WriteLine("\n\npress any key to exit...");
        Console.ReadKey();
        //print it for exercise 1 myArr[o, column];  myArr[ , column]
    }` 

【问题讨论】:

  • 你为什么要硬编码这个值:grades[0, col]grades[1,col],不应该用row替换0和1吗?
  • 完全错误的解决方案...
  • grades[0, col] 和grades[1, col] 用于打印第一列和第二列的值

标签: c# arrays 2d average


【解决方案1】:

如果您正在寻找可以为您执行此操作的特殊命令,那么您就不走运了!您只需编写代码即可,就像您通常平均一系列数字一样。提示:二维数组的 'y' 维度中的元素数由例如给出。 grades.GetLength(1).

【讨论】:

    【解决方案2】:

    要获得每列的平均值,您需要遍历固定行的列并添加它们的值,如下所示:

    int columnTotal, average;
    for (int row = 0; row < 2; row++)
    {
        columnTotal = 0;
        for (int col = 0; col < 2; col++)
        {
            columnTotal += grades[row, col];
        }
    
        average = columnTotal/2;
        Console.WriteLine("Average: {0}", average);
    }
    

    【讨论】:

    • 好的。现在我得到了我必须做的事情。唯一有效的是你有 col 行的后备工作,
    • 计算每列的平均值。看起来您想计算每行的平均值。让我更新一下。
    猜你喜欢
    • 2023-01-27
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    相关资源
    最近更新 更多