Матрицы. Нахождение максимального элемента в строках массива - C#

Узнай цену своей работы

Формулировка задачи:

Дана матрица P(N,N). Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали. Вывести на печать исходную и результирующую матрицы. (N<=15). Помогите, пожалуйста, с кодом.

Решение задачи: «Матрицы. Нахождение максимального элемента в строках массива»

textual
Листинг программы
Console.Write("Введите длину строки матрицы: ");
 
            int N;
            if (!int.TryParse(Console.ReadLine(), out N) || 
                N < 0 || N > 15)    //ограничения по размерности матрицы
            {
                Console.Write("Введено не корректное значение./nНажмите любую клавишу для завершения работы.");
                Console.ReadKey();
                return;
            }
 
            int i, j;
            double[][] Matrix = new double[N][];
 
            Console.Write("Всего значений " + (N * N) + " введите их\n");
 
            //ввод значений
            for (i = 0; i < N; i++) //колонки
            {
                Matrix[i] = new double[N];  //указываю размерность массива в строке
                for (j = 0; j < N; j++) //строки
                {
                    if (!double.TryParse(Console.ReadLine(), out Matrix[i][j]))
                    {
                        Console.Write("Введено не корректное значение./nНажмите любую клавишу для завершения работы.");
                        Console.ReadKey();
                        return;
                    }
                }
            }
 
            //Ведем поиск максимумов
 
            int MaxIndex;
            double Temp;
 
            for (i = 0; i < N; i++) //колонки
            {
                for (j = 0; j < N; j++) //попутно вывожу что было
                    Console.Write(Matrix[i][j] + " ");
 
                Console.Write("\n");
 
                MaxIndex = 0;
                for (j = 1; j < N; j++) //строки
                    if (Matrix[i][j] > Matrix[i][MaxIndex])
                        MaxIndex = j;   //записываю индекс максимального значения
 
                Temp = Matrix[i][i];
                Matrix[i][i] = Matrix[i][MaxIndex]; //перемещаю максимальное значение строки на позицию диагонали
                Matrix[i][MaxIndex] = Temp;
            }
 
            Console.Write("Результат\n");
            for (i = 0; i < N; i++) //вывожу результат
            {
                for (j = 0; j < N; j++)
                    Console.Write(Matrix[i][j] + " ");
 
                Console.Write("\n");
            }
 
            Console.ReadKey();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы