В целочисленный массив размером n×n вставить строку из нулей после всех строк, в которых нет ни одного нуля - C#

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

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

Вставить строку из нулей после всех строк, в которых нет ни одного нуля.

Решение задачи: «В целочисленный массив размером n×n вставить строку из нулей после всех строк, в которых нет ни одного нуля»

textual
Листинг программы
 private void button13_Click(object sender, EventArgs e)
        {
 
            int[,] MainMatrix = new int[5, 5];   // создаем матрицу 5x5
            Random gen= new Random();      // создаем переменную под радном
            string firstMatrix = "";   // строка для вывода начальной матрицы
            string newMatrix = "";   // строка для вывода новой матрицы
 
            int N=5;// здесь бeдем хранить число строк без нулей  (изначально считаем что все без нулей)
 
 
 
            
            ///// заполняе матрицу рандомама
            for (int i = 0; i < 5; i++)
                for (int j = 0; j < 5; j++)
                    MainMatrix[i, j] = gen.Next(0, 7);
            ///// заполнили матрицу рандомама
            
 
        
 
 
           //формируем строку для вывода это матрицы 
            for (int i = 0; i < 5; i++)
            {
                firstMatrix += "\n";
                for (int j = 0; j < 5; j++)
                    firstMatrix += MainMatrix[i, j] + ";";
            }
            //сформировали строку для вывода это матрицы 
 
// Считаем колличесво нелулевых строк и создаем новую матрицу нужных размеров
 
            for (int i = 0; i < 5; i++)          
                for (int j = 0; j < 5; j++)
                    if (MainMatrix[i, j] == 0)  // емли встречаем 0
                    {
                        N--;  
                        break;  // переходи на следующию строку
                    }
 
 
            int[,] NewMatrix = new int[5+N, 5];   // создаем матрицу со сторока 5+N
 
 
 
            int k = 0;   // счетчик для новой матрицы 
            bool flag = false;
            bool first = true;
 
 
            for (int i = 0; i < 5; i++)
            {
                if (!first)  // если не первая строка то увеличиваем к
                    k++;
                if (flag)   
                    k++;
                flag = true;   // ставим  true, 
                first = false;   // ставим  false так как первая строка прошла
 
                for (int j = 0; j < 5; j++)   // переписываем строчку из 1 массива во 2
                {
                    NewMatrix[k, j] = MainMatrix[i, j];
 
                    if (MainMatrix[i, j] == 0)   // если встретим 0 то k++ не выполнится(при следующий итерации по i)
                    {
                        flag = false;
                    }
                }
            }
 
 
 
 
            //формируем строку для вывода  новой мотрицы 
            for (int i = 0; i < 5+N; i++)
            {
                newMatrix += "\n";
                for (int j = 0; j < 5; j++)
                    newMatrix += NewMatrix[i, j] + ";";
            }
            //сформировали строку для вывода новой  матрицы 
 
 
 
 
 
            MessageBox.Show(firstMatrix + "\n Колличество строк без нулйе =" + (N).ToString() + "\n" + newMatrix);
 
 
 
 
        }

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


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

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

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