В матрице поменять местами столбец с номером 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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д