В матрице поменять местами столбец с минимальной суммой со столбцом с максимальной - 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();
        }
    }
}

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


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

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

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