.NET 4.x Исключение "индекс находился вне границ массива" при заполнении массива значением - C#
Формулировка задачи:
Всем доброго времени суток, делаю курсовую на языке программирования C#.
Задача:
В (0, 1)-матрице подсчитать число изолированных 0-областей, т.е. областей, состоящих из одних нулей, 0-область может состоять только из одного нулевого элемента. Пользователь вводит с клавиатуры размерность матрицы и значения элементов матрицы. Программа определяет количество изолированных 0-областей в матрице.
Проблема:
После ввода переменных и обозначения размера массива, пытаюсь заполнить массив данными, но выбивает с исключением System.IndexOutOfRangeException. Помогите разобраться, не могу понять что я делаю не так.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int number_line = 0; //Число строк в матрице int number_column = 0; //Число столбцов в матрице int number_zero = 0; //Количество нулевых элементов int number_x = 0; //Номер нулевой зоны int number_y = 0; //Количество нулевых зон int k = 0; //Номер нулевого элемента в массиве int max = 0; //Номер максимальной зоны int[,] mas = new int[number_line, number_column]; //Создание массива для хранения матрицы int[,] koordinat = new int[number_zero, 2]; //Создание массива с "координатами" нулевых элементов int[,] number_zone = new int[1, number_zero]; //Создание массива с номерами нулевых зон //Сообщение о вводе количества строк матрицы Console.WriteLine("Введите количество строк матрицы и нажмите <Enter> =>"); //Ввод количества строк матрицы с клавиатуры number_line = Convert.ToInt16(Console.ReadLine()); //Сообщение о вводе количества столбцов матрицы Console.WriteLine("Введите количество столбцов матрицы и нажмите <Enter> =>"); //Ввод количества столбцов матрицы с клавиатуры number_column = Convert.ToInt16(Console.ReadLine()); //Цикл ввода матрицы с клавиатуры for (int i = 0; i < number_line; i++) { for (int j = 0; j < number_column; j++) { Console.WriteLine("Введите значение элемента матрицы ({0},{1}) \t", i, j); mas[i, j] = Convert.ToInt32(Console.ReadLine()); } Console.WriteLine(); } } } }
Решение задачи: «.NET 4.x Исключение "индекс находился вне границ массива" при заполнении массива значением»
textual
Листинг программы
static void Main(string[] args) { int number_line = 0; //Число строк в матрице int number_column = 0; //Число столбцов в матрице int number_zero = 0; //Количество нулевых элементов int number_x = 0; //Номер нулевой зоны int number_y = 0; //Количество нулевых зон int k = 0; //Номер нулевого элемента в массиве int max = 0; //Номер максимальной зоны int[,] mas = new int[number_line, number_column]; //Создание массива для хранения матрицы int[,] koordinat = new int[number_zero, 2]; //Создание массива с "координатами" нулевых элементов int[,] number_zone = new int[1, number_zero]; //Создание массива с номерами нулевых зон //Сообщение о вводе количества строк матрицы Console.WriteLine("Введите количество строк матрицы и нажмите <Enter> =>"); //Ввод количества строк матрицы с клавиатуры number_line = Convert.ToInt16(Console.ReadLine()); //Сообщение о вводе количества столбцов матрицы Console.WriteLine("Введите количество столбцов матрицы и нажмите <Enter> =>"); //Ввод количества столбцов матрицы с клавиатуры number_column = Convert.ToInt16(Console.ReadLine()); //Цикл ввода матрицы с клавиатуры for (int i = 0; i < number_line; i++)[
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д