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