Из заданной матрицы удалить строку и столбец, в которых находится первый элемент, равный нулю - C#

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

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

И полученную матрицу уплотнить. Вот что получилось, но не работает, никак не могу закончить:
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. int i, j;
  4. int row = 0;
  5. bool yslovie = true;
  6. Console.WriteLine("Введите количество столбцов");
  7. int n = Convert.ToInt32(Console.ReadLine());
  8. Console.WriteLine("Введите количество строк");
  9. int m = Convert.ToInt32(Console.ReadLine());
  10. int[,] massiv = new int[m, n]; //объявляем массив
  11. Random rnd = new Random(); //функция рандом
  12. for (i = 0; i < m; i++)
  13. {
  14. for (j = 0; j < n; j++)
  15. {
  16. massiv[i, j] = rnd.Next(0, 2); //с помощью рандома присваиваем элементы заданный диапазон
  17. Console.Write(massiv[i, j] + "\t");
  18. if (massiv[i, j] == row)
  19. {
  20. yslovie = true;
  21. }
  22. }
  23. Console.WriteLine();
  24. }
  25. int[,] matrix = new int[m - 1, n];
  26. if (yslovie == true)
  27. {
  28. for (i = 0; i < matrix.GetLength(0); i++)
  29. {
  30. if (i != row)
  31. {
  32. for (j = 0; j < matrix.GetLength(1); j++)
  33. {
  34. matrix[i, j] = massiv[i, j];
  35. continue;
  36. }
  37. }
  38. else
  39. {
  40. for (j = 0; j < matrix.GetLength(1); j++)
  41. {
  42. matrix[row, j] = massiv[i + 1, j];
  43. continue;
  44. }
  45. row++;
  46. }
  47. }
  48. }
  49.  
  50. Console.WriteLine("Массив:"); // выводим массив
  51. for (i = 0; i < m; i++)
  52. {
  53. for (j = 0; j < n; j++)
  54. {
  55. Console.Write(matrix[i, j] + "\t");
  56. }
  57. Console.WriteLine();
  58. }
  59. Console.ReadKey();
  60. }
  61. }
  62. }

Решение задачи: «Из заданной матрицы удалить строку и столбец, в которых находится первый элемент, равный нулю»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication11
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             int i, j;
  10.             int row = 0;
  11.             //bool yslovie = true;
  12.             bool yslovie = false;
  13.             Console.WriteLine("Введите количество столбцов");
  14.             int n = Convert.ToInt32(Console.ReadLine());
  15.             Console.WriteLine("Введите количество строк");
  16.             int m = Convert.ToInt32(Console.ReadLine());
  17.             int[,] massiv = new int[m, n]; //объявляем массив
  18.             Random rnd = new Random(); //функция рандом
  19.             //->правки
  20.             int[,] matrix = new int[m-1,n-1];
  21.             int x = 0;
  22.             int y = 0;
  23.             //<- правки
  24.             for (i = 0; i < m; i++)
  25.             {
  26.                 for (j = 0; j < n; j++)
  27.                 {
  28.                     massiv[i, j] = rnd.Next(0, 5); //с помощью рандома присваиваем элементы заданный диапазон
  29.                     Console.Write(massiv[i, j] + "\t");
  30.                     //if (massiv[i, j] == row)
  31.                     if (massiv[i, j] == row & !yslovie)//избегаем переопределение первого найденного
  32.                     {
  33.                         yslovie = true;
  34.                         x = i;
  35.                         y = j;
  36.                     }
  37.                 }
  38.                 Console.WriteLine();
  39.             }
  40.  
  41.             //int[,] matrix = new int[m - 1, n];
  42.             if (yslovie == true)
  43.             {
  44.                 for (i = 0; i < matrix.GetLength(0); i++)
  45.                 {
  46.                     //if (i != row)
  47.                     //{
  48.                     //    for (j = 0; j < matrix.GetLength(1); j++)
  49.                     //    {
  50.                     //        matrix[i, j] = massiv[i, j];
  51.                     //        continue;
  52.                     //    }
  53.                     //}
  54.                     //else
  55.                     //{
  56.                     //    for (j = 0; j < matrix.GetLength(1); j++)
  57.                     //    {
  58.                     //        matrix[row, j] = massiv[i + 1, j];
  59.                     //        continue;
  60.                     //    }
  61.                     //    row++;
  62.                     //}
  63.                     if (i < x)//x -удаляемая строка
  64.                     {
  65.                         for (j = 0; j < matrix.GetLength(1); j++)
  66.                             if (j < y)//y -удаляемый столбец
  67.                                 matrix[i, j] = massiv[i, j];
  68.                             else
  69.                                 matrix[i, j] = massiv[i, j+1]; ;
  70.                     }
  71.                     else
  72.                     {
  73.                         for (j = 0; j < matrix.GetLength(1); j++)
  74.                             if (j < y)
  75.                                 matrix[i, j] = massiv[i+1, j];
  76.                             else
  77.                                 matrix[i, j] = massiv[i+1, j + 1];
  78.                     }
  79.                 }
  80.             }
  81.             Console.WriteLine("Массив:"); // выводим массив
  82.  
  83.             for (i = 0; i < matrix.GetLength(0); i++)
  84.             {
  85.                 for (j = 0; j < matrix.GetLength(1); j++)
  86.                 {
  87.                     Console.Write(matrix[i, j] + "\t");
  88.                 }
  89.                 Console.WriteLine();
  90.             }
  91.  
  92.             Console.ReadKey();
  93.         }
  94.     }
  95. }

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


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

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

9   голосов , оценка 3.778 из 5

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

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

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