В матрице поменять местами столбец с минимальной суммой со столбцом с максимальной - C#
Формулировка задачи:
Дана прямоугольная матрица n x m целых чисел. Поменять местами столбец с минимальной суммой со столбцом с максимальной суммой .
Решение задачи: «В матрице поменять местами столбец с минимальной суммой со столбцом с максимальной»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication6 { class Program { static void Main(string[] args) { int n = 4; int m = 8; int[,] arr = new int[n, m]; int[] sum = new int[m]; for (int j = 0; j < n; j++) { sum[j] = 0; } Random rand = new Random(); for (int j = 0; j < m; j++) { for (int i = 0; i < n; i++) { arr[i, j] = rand.Next(1, 15); //Заполняем массив } } for (int j = 0; j < m; j++) { for (int i = 0; i < n; i++) { Console.Write(arr[i, j] + "\t"); //Выводим начальную матрицу } Console.WriteLine(); } Console.WriteLine("\n\n"); int k = 0; for (int j = 0; j < m; j++) { for (int i = 0; i < n; i++) { sum[k] += arr[i, j]; //Считаем сумму по столбцам } k++; } int max = sum[0]; int index_of_max = 0; for (int j = 0; j < n; j++) { if (max < sum[j]) { max = sum[j]; //Находим максимальную сумму и запоминаем её индекс index_of_max = j; } } int min = sum[0]; int index_of_min = 0; for (int j = 0; j < n; j++) { if (min > sum[j]) { min = sum[j]; //Находим минимальную сумму и запоминаем индекс index_of_min = j; } } int tmp = 0; for (int j = 0; j < m; j++) { tmp = arr[index_of_max, j]; arr[index_of_max, j] = arr[index_of_min, j]; //Обмениваем столбцы местами arr[index_of_min, j] = tmp; } for (int j = 0; j < m; j++) { for (int i = 0; i < n; i++) { Console.Write(arr[i, j] + "\t"); //Выводим результат } Console.WriteLine(); } Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д