如何获得二维数组中的列的平均值

时间:2015-04-06 06:59:17

标签: c# arrays 2d average

我刚刚开始使用2D数组,但似乎无法弄清楚如何获得每列的平均值。我使用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]
    }` 

2 个答案:

答案 0 :(得分:0)

如果你正在寻找一个能为你做的特殊命令,那你就不走运了!您只需要编写代码来执行此操作,就像通常平均一系列数字一样。提示:2D阵列的“y”维度中的元素数量由例如给出。 grades.GetLength(1)

答案 1 :(得分:0)

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

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);
}