Подсчитать количество нулей в каждой строке матрицы и записать полученные числа в одномерный массив - C#

Узнай цену своей работы

Формулировка задачи:

В прямоугольной матрице B, содержащий только нули и единицы, подсчитать количество нулей в каждой строке и записать полученные числа в одномерный массив P. Создать матрицу Z , количество столбцов в каждой строке которой определяется соответствующим значением из массива P . В каждую строку матрицы Z записать подряд индексы нулей соответствующих строк матрицы B . Инвертировать порядок элементов в каждой строке матрицы Z.

Решение задачи: «Подсчитать количество нулей в каждой строке матрицы и записать полученные числа в одномерный массив»

textual
Листинг программы
  1. private static void Main()
  2. {
  3.     int rowsCount = 5;
  4.     int columnCount = 8;
  5.     int[,] b = new int[rowsCount, columnCount];
  6.     int[] p = new int[rowsCount];
  7.  
  8.     Random rand = new Random();
  9.     Console.WriteLine("Матрица B:");
  10.     for (int i = 0; i < rowsCount; i++)
  11.     {
  12.         for (int j = 0; j < columnCount; j++)
  13.         {
  14.             b[i, j] = rand.Next(0, 2);
  15.             Console.Write(b[i, j] + " ");
  16.         }
  17.         Console.WriteLine();
  18.     }
  19.  
  20.     Console.WriteLine("Массив P:");
  21.     for (int i = 0; i < rowsCount; i++)
  22.     {
  23.         int countZero = 0;
  24.  
  25.         for (int j = 0; j < columnCount; j++)
  26.         {
  27.             if (b[i, j] == 0)
  28.             {
  29.                 countZero++;
  30.             }
  31.         }
  32.  
  33.         p[i] = countZero;
  34.         Console.WriteLine(p[i]);
  35.     }
  36.            
  37.     int[][] Z = new int[rowsCount][];
  38.     for (int i = 0; i < Z.Length; i++)
  39.         Z[i] = new int[p[i]];
  40.  
  41.     for (int i = 0; i < rowsCount; i++)
  42.     {
  43.         int zeroCounter = 0;
  44.         for (int j = 0; j < columnCount; j++)
  45.         {
  46.             if (b[i, j] == 0)
  47.                 Z[i][zeroCounter++] = j;
  48.         }
  49.     }
  50.  
  51.     Console.WriteLine("Матрица Z:");
  52.     for (int i = 0; i < rowsCount; i++)
  53.     {
  54.         for (int j = 0; j < Z[i].Length; j++)
  55.         {
  56.             Console.Write(Z[i][j] + " ");
  57.         }
  58.         Console.WriteLine();
  59.     }
  60.  
  61.     for (int i = 0; i < Z.Length; i++)
  62.         Array.Reverse(Z[i]);
  63.  
  64.     Console.WriteLine("Инвертированная матрица Z:");
  65.     for (int i = 0; i < rowsCount; i++)
  66.     {
  67.         for (int j = 0; j < Z[i].Length; j++)
  68.         {
  69.             Console.Write(Z[i][j] + " ");
  70.         }
  71.         Console.WriteLine();
  72.     }
  73.  
  74.     Console.ReadKey();
  75. }

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


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

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

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы