Поменять местами максимальный и 1й элементы строк матрицы А размера 5х7

tuburn

Поменять местами максимальный и 1й элементы строк матрицы А размера 5х7
3 ответа

tuburn

int [, ] matrix = new int[5,7]{{1, 2, 3, 4, 5, 6, 7}, 
                                           {1, 2, 3, 4, 5, 6, 7}, 
                                           {1, 2, 3, 4, 5, 6, 7}, 
                                           {1, 2, 3, 8, 5, 6, 7},
                                           {1, 2, 3, 4, 5, 6 ,7}};
            // вычисление
            for(int i = 0; i < matrix.GetLength(0); i++)
            {
                int tmp = 0;
                for(int j = 0; j < matrix.GetLength(1); j++)
                {
                    if (matrix[i, j] > matrix[i, tmp])
                        tmp = j;
                }
 
                object temp = matrix[i, 0];
                matrix[i, 0] = matrix[i, tmp];
                matrix[i, tmp] = (int)temp;
            }
 
            // вывод
            for (int i = 0; i < matrix.GetLength(0); i++)
            {
                for (int j = 0; j < matrix.GetLength(1); j++)
                {
                    Console.Write(matrix[i, j] + " ");
                }
                Console.WriteLine();
            }
можно тип матрицы сделать object, тогда хоть что сможет хранить, но придётся немного переделать из-за операций распаковки. Либо ещё круче - сделать обобщёный тип


tuburn

спасибо большое. но мне нужно лишь по минимуму выполнить задание


tuburn

Либо ещё круче - сделать обобщёный тип
Джаст фор лулз
using System;
 
namespace ConsoleApp
{
    class Program
    {
        public static T[,] SwapInMatrix<T>(T[,] matrix) where T : IComparable<T> {
            for (int i = 0; i < matrix.GetLength(0); i++) {
                int tmp = 0;
                for (int j = 0; j < matrix.GetLength(1); j++) {
                    if (matrix[i, j].CompareTo(matrix[i, tmp]) > 0)
                        tmp = j;
                }
 
                T temp = matrix[i, 0];
                matrix[i, 0] = matrix[i, tmp];
                matrix[i, tmp] = temp;
            }
 
            return matrix;
        }
 
        static void Main(string[] args) {
            int[,] matrix = new int[5, 7]{{1, 2, 3, 4, 5, 6, 7}, 
                                           {1, 2, 3, 4, 5, 6, 7}, 
                                           {1, 2, 3, 4, 5, 6, 7}, 
                                           {1, 2, 3, 8, 5, 6, 7},
                                           {1, 2, 3, 4, 5, 6 ,7}};
 
 
            matrix = SwapInMatrix<int>(matrix);
 
            for (int i = 0; i < matrix.GetLength(0); i++) {
                for (int j = 0; j < matrix.GetLength(1); j++) {
                    Console.Write(matrix[i, j] + " ");
                }
                Console.WriteLine();
            }
        }
    }
}