.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++)[
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д