Привет Я новичок в C# и я не понимаю, почему исключение в программе, показанной нижеошибка System.IndexOutOfRangeException не понял
ПРОГРАММА:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int n, i, x=0, y=0;
Console.WriteLine("Enter the degree of matrix:");
n = int.Parse(Console.ReadLine());
int[,] num = new int[n, n];
int p = n * n;
for (i = 1; i <= p; i++)
{
num[x, y] = i;
if (num[x, y] % n == 0) { y++; }
if (y % 2 == 0) { x++; }
if (y % 2 != 0) { x--; }
}
for (i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
Console.Write(num[i, j] + " ");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
ТРЕБУЕТСЯ РЕЗУЛЬТАТ:
Enter order of matrix:
4
1 8 9 16
2 7 10 15
3 6 11 14
4 5 12 13
Но исключение, указанное в теме, бросается в num [x, y] = i; , Я не понимаю, почему возникает событие System.IndexOutOfRangeException, поскольку цикл явно заканчивается в конце массива 2d.
P.S. программа предназначена для запуска только один раз.