Подсчитать количество нулей в каждой строке матрицы и записать полученные числа в одномерный массив - C#
Формулировка задачи:
В прямоугольной матрице B, содержащий только нули и единицы, подсчитать количество нулей в каждой строке и записать полученные числа в одномерный массив P. Создать матрицу Z , количество столбцов в каждой строке которой определяется соответствующим значением из массива P . В каждую строку матрицы Z записать подряд индексы нулей соответствующих строк матрицы B . Инвертировать порядок элементов в каждой строке матрицы Z.
Решение задачи: «Подсчитать количество нулей в каждой строке матрицы и записать полученные числа в одномерный массив»
textual
Листинг программы
private static void Main() { int rowsCount = 5; int columnCount = 8; int[,] b = new int[rowsCount, columnCount]; int[] p = new int[rowsCount]; Random rand = new Random(); Console.WriteLine("Матрица B:"); for (int i = 0; i < rowsCount; i++) { for (int j = 0; j < columnCount; j++) { b[i, j] = rand.Next(0, 2); Console.Write(b[i, j] + " "); } Console.WriteLine(); } Console.WriteLine("Массив P:"); for (int i = 0; i < rowsCount; i++) { int countZero = 0; for (int j = 0; j < columnCount; j++) { if (b[i, j] == 0) { countZero++; } } p[i] = countZero; Console.WriteLine(p[i]); } int[][] Z = new int[rowsCount][]; for (int i = 0; i < Z.Length; i++) Z[i] = new int[p[i]]; for (int i = 0; i < rowsCount; i++) { int zeroCounter = 0; for (int j = 0; j < columnCount; j++) { if (b[i, j] == 0) Z[i][zeroCounter++] = j; } } Console.WriteLine("Матрица Z:"); for (int i = 0; i < rowsCount; i++) { for (int j = 0; j < Z[i].Length; j++) { Console.Write(Z[i][j] + " "); } Console.WriteLine(); } for (int i = 0; i < Z.Length; i++) Array.Reverse(Z[i]); Console.WriteLine("Инвертированная матрица Z:"); for (int i = 0; i < rowsCount; i++) { for (int j = 0; j < Z[i].Length; j++) { Console.Write(Z[i][j] + " "); } Console.WriteLine(); } Console.ReadKey(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д