В матрице поменять местами столбец с номером N с тем, который содержит только отрицательные элементы - C#
Формулировка задачи:
Вот эта не понятная. Есть решение у кого?
Дана матрица размера MxN. Поменять местами столбец с номером N и первый из столбцов, содержащих только отрицательные элементы. Если требуемых столбцов нет, то вывести матрицу без изменений.
Решение задачи: «В матрице поменять местами столбец с номером N с тем, который содержит только отрицательные элементы»
textual
Листинг программы
- class Program
- {
- static void Show(int[,] mas)
- {
- for (int i = 0; i < mas.GetLength(0); i++)
- {
- for (int j = 0; j < mas.GetLength(1); j++)
- {
- Console.Write(" " + mas[i, j] + " ");
- }
- Console.WriteLine();
- }
- }
- static void Main()
- {
- Console.Write("Введите M: ");
- int M = int.Parse(Console.ReadLine());
- Console.Write("Введите N: ");
- int N = int.Parse(Console.ReadLine());
- int[,] array = new int[M, N];
- Random random = new Random();
- for (int i = 0; i < M; i++)
- {
- for (int j = 0; j < N; j++)
- {
- array[i, j] = random.Next(-9, 10);
- }
- }
- Show(array);
- int buf = -1;
- for (int i = 0; i < N; i++)
- {
- int count = 0;
- for (int j = 0; j < M; j++)
- {
- if (array[j, i] > 0)
- {
- break;
- }
- count++;
- }
- if (count == M)
- {
- buf = i;
- break;
- }
- count = 0;
- }
- if (buf >= 0)
- {
- Console.Write("Введите столбец, который нужно поменять: ");
- int K = int.Parse(Console.ReadLine());
- if (K > N) throw new IndexOutOfRangeException();
- int buf1 = 0;
- for (int i = 0; i < M; i++)
- {
- buf1 = array[i, buf];
- array[i, buf] = array[i, K];
- array[i, K] = buf1;
- }
- Show(array);
- }
- Console.ReadLine();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д