每行 每列 对角线和都相等的矩阵,例如:
8 1 6
3 5 7
4 9 2
#include<iostream>
using namespace std;
int main()
{
int a[16][16] = { 0 };
int n;
int flag = 1;
while (flag)
{
cin >> n;
if (n != 0 && n <= 15)flag = 0;
}
int i = 1;
int j = n / 2 + 1;
a[i][n / 2 + 1] = 1;
for (int k = 2; k <= n * n; k++)
{
int i1 = i, j1 = j;
i = i - 1;
j = j + 1;
if (i < 1)i = n;
if (j > n)j = 1;
if (a[i][j] != 0)
{
i = i1 + 1;
j = j1;
}
a[i][j] = k;
}
for (int i2 = 1; i2 <= n; i2++)
{
cout << endl;
for (int j2 = 1; j2 <= n; j2++)
{
cout << a[i2][j2] << " ";
}
}
return 0;
}