В каждой строке двумерного массива поменять первый нулевой элемент и последний отрицательный - 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; 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы