c语言编程输出N阶幻方。
时间: 2023-06-01 12:08:09 浏览: 107
好的,这是一个编程问题,我可以帮您解答。下面是一个输出N阶幻方的C语言代码示例:
```
#include <stdio.h>
#include <stdlib.h>
void MagicSquare(int n) {
int **mat;
int i, j;
mat = (int **) malloc(n * sizeof(int *));
for (i = 0; i < n; i++)
mat[i] = (int *) malloc(n * sizeof(int));
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
mat[i][j] = 0;
i = n / 2;
j = n - 1;
int num = 1;
while (num <= n * n) {
if (i == -1 && j == n) {
j = n - 2;
i = 0;
} else {
if (j == n)
j = 0;
if (i < 0)
i = n - 1;
}
if (mat[i][j]) {
j -= 2;
i++;
continue;
} else
mat[i][j] = num++;
j++;
i--;
}
printf("The Magic Square for n=%d:\nSum of each row or column %d:\n\n", n, n * (n * n + 1) / 2);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
printf("%3d ", mat[i][j]);
printf("\n");
}
}
int main(void) {
int n;
printf("Please input n: ");
scanf("%d", &n);
MagicSquare(n);
return 0;
}
```
使用该代码可以输出N阶幻方,其中N为用户输入的数字,输出结果满足每一行、每一列、对角线上的数之和都相等的条件。