Удаление из массива первой строки, в которой есть отрицательный элемент - C#
Формулировка задачи:
Помогите, не могу понять в чем ошибка.
При отладке выдает "Необработанное исключение типа "System.IndexOutOfRangeException. Дополнительные сведения: Индекс находился вне границ массива." на строчку mass[i, a] = mass[i + 1, a];
Само задание: Из заданной матрицы A(N,M) удалите строку, в которой находится первый
отрицательный элемент.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace lab4
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Введите N");
- int n = int.Parse(Console.ReadLine());
- Console.WriteLine("Введите M");
- int m = int.Parse(Console.ReadLine());
- Console.WriteLine("Размер массива - " + n + "x" + m);
- int[,] mass = new int[n,m]; //Создаём массив размера NxM
- Console.WriteLine("Введите элементы массива");
- for (int i = 0; i < n; i++) //пользователь вводит элементы массива
- {
- for (int j = 0; j < m; j++)
- {
- mass[i, j] = int.Parse(Console.ReadLine());
- }
- }
- Console.WriteLine("Ваш массив:");
- for (int i = 0; i < n; i++) //вывод массива в виде матрицы
- {
- for (int j = 0; j < m; j++)
- {
- Console.Write(mass[i, j] + "\t");
- }
- Console.WriteLine();
- }
- Console.ReadKey();
- int flag = 0;
- for (int i = 0; i < n; i++) // удаление строки
- for (int j = 0; j < m; j++)
- if (mass[i, j] < 0) // когда находим отрицательный элемент
- {
- if (flag == 0)
- {
- for (i = 0; i < n; i++)
- for (int a = 0; a < m; a++)
- mass[i, a] = mass[i + 1, a]; // присваиваем элементы следующей строки
- n--;// уменьшаем строки на 1
- }
- flag++;
- }
- for (int i = 0; i < n; i++) //вывод измененного массива
- {
- for (int j = 0; j < m; j++)
- {
- Console.Write(mass[i, j] + "\t");
- }
- Console.WriteLine();
- }
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Удаление из массива первой строки, в которой есть отрицательный элемент»
textual
Листинг программы
- for (int i = 0; i < n; i++) // удаление строки
- for (int j = 0; j < m; j++)
- if (mass[i, j] < 0) // когда находим отрицательный элемент
- {
- if (flag == 0)
- {
- for (i = 0; i < n-1; i++)
- for (int a = 0; a < m; a++)
- mass[i, a] = mass[i + 1, a]; // присваиваем элементы следующей строки
- n--;// уменьшаем строки на 1
- }
- flag++;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д