Как получить среднее значение столбцов в 2d массиве

1

Я только начал использовать 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]
    }' 
  • 0
    Почему вы жестко запрограммировали это значение: grades[0, col] и grades[1,col] , не следует заменять 0 и 1 на row ?
  • 0
    Неправильное решение в целом ...
Показать ещё 1 комментарий
Теги:
arrays
2d
average

2 ответа

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);
}
  • 0
    Хорошо. Теперь я получаю то, что должен был сделать. это работает, только у вас есть задний ряд,
  • 0
    это вычисляет среднее значение для каждого столбца. Похоже, вы хотели рассчитать среднее на строку. Позвольте мне обновить это.
0

Если вы ищете специальную команду, которая сделает это за вас, вам не повезло! Вам просто нужно написать код, чтобы сделать это, так же, как обычно, вы обычно будете серией чисел. Подсказка: количество элементов в измерении "y" 2D-массива задается, например, grades.GetLength(1).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню