Почему выдаёт ошибку "Индекс находился вне границ массива."

class Program
{
    static void Main(string[] args)
    {

        int n;
        Console.WriteLine("Задайте количество эл. в массиве");
        n = int.Parse(Console.ReadLine());

        int[,] a = new int[n, n];

        Console.WriteLine("Задайте эл. массива ");

        for (int i = 0; i < n; i++)
            for (int k = 0; k < n; k++)

            {
                Console.Write("Задайте эл. a[" + i + "] :");
                Console.Write("Задайте эл. a[" + k + "] :");

                a[i, k] = int.Parse(Console.ReadLine());

            }
        Console.WriteLine("\nРезультатирующий массив:");
        for (int i = 0; i < a.Length; i++)
            for (int k = 0; i < a.Length; k++)

            {
                Console.Write("{0: 0}", a[i, k]);

            }
        Console.ReadKey();
    }
}

Ответы (1 шт):

Автор решения: Alexander Petrov

a.Length - это суммарная длина массива по всем измерениям. То есть если вы ввели n = 3, то Length будет равно 9.

Вам нужно использовать GetLength

for (int i = 0; i < a.GetLength(0); i++)
    for (int k = 0; k < a.GetLength(1); k++)

Да, и обратите внимание: во втором цикле у вас опечатка k = 0; i <.

→ Ссылка