.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++)[

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


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

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

8   голосов , оценка 3.875 из 5
Похожие ответы