В каждой строке двумерного массива поменять первый нулевой элемент и последний отрицательный - C#
Формулировка задачи:
В каждой строке двумерного массива поменять первый нулевой элемент и последний отрицательный если таких элементов не то должно быть выведено соответствующее сообщение.
Решение задачи: «В каждой строке двумерного массива поменять первый нулевой элемент и последний отрицательный»
textual
Листинг программы
static void Main() { var matrix = new int[4, 4] { {1, 2, 0, -4}, {-4, -5, 0, 0}, {6, -2, 8, 0}, {0, 0, 0, 0}}; var a = matrix.GetLength(0); var b = matrix.GetLength(1); var indexZero = -1; var indexNegative = -1; var c = 0; for (var i = 0; i < a; i++) { indexZero = FindIndexZero(matrix, i, b, indexZero); indexNegative = FindIndexNegative(matrix, i, b, indexNegative); if (indexZero == -1 || indexNegative == -1) Console.WriteLine("Не найдены элементы в строке {0}", i+1); else { c = matrix[i, indexZero]; matrix[i, indexZero] = matrix[i, indexNegative]; matrix[i, indexNegative] = c; } indexZero = -1; indexNegative = -1; } PrintMatrix(matrix, a, b); } private static void PrintMatrix(int[,] matrix, int a, int b) { for (var i = 0; i < a; i++){ for (var j = 0; j < b; j++) Console.Write(matrix[i, j] + " "); Console.WriteLine(); } } static int FindIndexZero( int[,] matrix, int i, int a, int indexZero) { for (var j = 0; j < a; j++) if (matrix[i, j] == 0 && indexZero == -1) return j; return -1; } static int FindIndexNegative(int[,] matrix, int i, int a, int indexNegative) { for (var j = a - 1; j != 0; j--) if (matrix[i, j] < 0 && indexNegative == -1) return j; return -1; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д