Вообще не могу понять откуда берется исключение - C#

Узнай цену своей работы

Формулировка задачи:

Необработанное исключение типа "System.IndexOutOfRangeException" произошло в ConsoleProject.exe Дополнительные сведения: Индекс находился вне границ массива.
class Program
{
    static void Main(string[] args)
    {
        Random rand = new Random();
        int aRows, bRows, aColumns, bColumn;
        while (true)
        {
            try
            {
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("Введите количество строк первой матрицы");
                aRows = Convert.ToInt32(Console.ReadLine());
 
                Console.WriteLine("Введите количество столбцов первой матрицы");
                aColumns = Convert.ToInt32(Console.ReadLine());
 
                Console.WriteLine("Введите количество строк второй матрицы");
                bRows = Convert.ToInt32(Console.ReadLine());
                if (aColumns != bRows)
                {
                    Console.Clear();
                    Console.WriteLine("Начинаем занова");
                    continue;
                }
 
                Console.WriteLine("Введите количество столбцов второй матрицы");
                bColumn = Convert.ToInt32(Console.ReadLine());
                break;
            }
            catch
            {
                Console.Clear();
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Используйте только цифры");
            }
        }
        Matrix firstM = new Matrix(aRows, aColumns);
        Matrix secondM = new Matrix(bRows, bColumn);
        Matrix thirdM = new Matrix(aRows, bColumn);
 
        for (int i = 0; i < aRows; i++)
        {
            for (int j = 0; j < aColumns; i++)
                firstM[i, j] = rand.Next(100);
        }
 
        for (int i = 0; i < bRows; i++)
        {
            for (int j = 0; j < bColumn; i++)
                secondM[i, j] = rand.Next(100);
        }
 
        firstM.Show();
        secondM.Show();
    }
}
class Matrix
{
    int[,] matrix;
    int row, column;
    public int Row
    {
        get { return row; }
        set 
        {
            if (value > 0)
                row = value;
        }
    }
    public int Column
    {
        get { return column; }
        set
        {
            if (value > 0)
                column = value;
        }
    }
 
    public int this[int i, int j]
    {
        get { return matrix[i, j]; }
        set { matrix[i, j] = value; }
    }
 
    public Matrix(int _row, int _column)
    {
        Row = _row;
        Column = _column;
        matrix = new int[Row, Column];
    }
 
    public void Show()
    {
        for (int i = 0; i < this.row; i++)
        {
            for (int j = 0; j < this.column; j++)
                Console.Write("{0,5}",this.matrix[i,j]);
            Console.WriteLine();
        }
        Console.WriteLine();
        Console.ReadLine();
    }
}

Решение задачи: «Вообще не могу понять откуда берется исключение»

textual
Листинг программы
for (int i = 0; i < (aRows-1); i++)
        {
            for (int j = 0; j < (aColumns-1); i++)
                firstM[i, j] = rand.Next(100);
        }
 
        for (int i = 0; i < (bRows-1); i++)
        {
            for (int j = 0; j < (bColumn-1);i++)
                secondM[i, j] = rand.Next(100);

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


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

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

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