#include "stdio.h"
int a[1010][1010];
void solve() {
int n;
puts("请输入魔方阵的阶数:(阶数为奇数)");
while (1) {
scanf("%d", &n);
if (n % 2 == 0) {
puts("输入有误,请输入一个奇数:");
} else
break;
}
int r = 0;
int c = n / 2;
a[0][c] = 1;
int i, j;
for (i = 2; i <= n * n; i++) {
if (a[(r - 1 + n) % n][(c + 1) % n] != 0) { // 判断上一行下一列是否存在元素e
r = (r + 1) % n; // 放在当前位置下面
} else {
r = (r - 1 + n) % n;
c = (c + 1) % n;
}
a[r][c] = i;
}
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%4d", a[i][j]);
}
printf("\n");
}
}
int main() {
solve();
return 0;
}
1.魔方阵
于 2023-04-11 23:30:15 首次发布