@PurgaBot

Создать двумерный массив, заполнить его и рандомно выбрать строку и столбец и удалить. Для этого создается новый массив. C# Не понимаю ошибку?

Напишите программу, в которой создается и инициализируется двумерный числовой массив.
Затем из этого массива удаляется строка и столбец(создается новый массив, в котором по сравнению с исходным удалена одна строка и один столбец). Индекс удаляемой строки и индекс управляемого определяется с помощью генератора случайных чисел. Вот мой код:

int a, b; 
 int value = 1; 
 Console.Write("Введите кол-во строк "); 
 a = Int32.Parse(Console.ReadLine()); 
 Console.Write("Введите кол-во столбцов "); 
 b = Int32.Parse(Console.ReadLine()); 
 Random rnd = new Random(); 
 int[,] numbs = new int[a, b]; 
 int row = rnd.Next(numbs.GetLength8(0)+1); 
 int col = rnd.Next(numbs.GetLength(1)+1); 
 for (int i = 0;i<a;i++) 
 { 
 for (int j = 0; j < b; j++) 
 { 
 numbs[i, j] = value; 
 Console.Write(numbs[i, j] + " "); 
 value++; 
 } 
 Console.WriteLine(); 
 } 
 
 Console.WriteLine("Удаляются столбец {0} и строка {1} ", col, row); 
 
 int v, q; 
 int[,] tvt = new int[(a - 1), (b - 1)]; 
 for (int i = 0; i < numbs.GetLength(0); i++) 
 { 
 if (i < row) v = i; 
 else v = (i - 1); 
 
 for (int j = 0; j < numbs.GetLength(1); j++) 
 { 
 if (j < col) q = j; 
 else q = (j - 1); 
 
 } 
 } 
 
 numbs = tvt; 
 Console.WriteLine(); 
 for (int i = 0; i < numbs.GetLength(0); i++) 
 { 
 for (int j = 0; j< numbs.GetLength(1); j++) 
 { 
 Console.Write(numbs[i,j] + " "); 
 } 
 Console.WriteLine(); 
 }


Скрин с ошибкой:
https://habrastorage.org/webt/5f/a9/7e/5fa97e814c2...
  • Вопрос задан
  • 1020 просмотров
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
У вас рандом для удаляемых элементов, генерирует числа больше, чем допустимо. Т.е. у вас всего 2 колонки, и удалять вы собрались колонку с индексом 2.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы