按照这样的N*N矩阵,进行计算
1
|
2
|
3
|
8
|
9
|
4
|
7
|
6
|
5
|
Console.Write("请输入要输入的N*N矩阵的值 N:");
int n = int.Parse(Console.ReadLine());
int[,] a = new int[n, n];
int i = 0, j = 0;//二维数组的两个下标
int cout = 1;
int m = 0; //当前圈数
//通过定义圈数,给每一圈中的数进行赋值
while (m < n / 2)//依次为每一圈得元素赋值
{
for (i = m, j = m; i < n - m - 1; i++)
a[i, j] = cout++;
for (j = m; j < n - m - 1; j++)
a[i, j] = cout++;
for (i = n - m - 1; i > m; i--)
a[i, j] = cout++;
for (j = n - m - 1; j > m; j--)
a[i, j] = cout++;
m++;
}
if (n % 2 != 0)//n为奇数的情况,为中间元素赋值
a[n / 2, n / 2] = n * n;
Console.WriteLine("该矩阵如下所示:");//输出矩阵
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if (a[i, j] < 10)
Console.Write(" {0}", a[i, j]);
else
Console.Write(" {0}", a[i, j]);
}
Console.Write("\n\n");
}
结果为