用c语言编写魔方阵的代码
时间: 2023-10-21 13:30:45 浏览: 45
以下是一个C语言编写的魔方阵代码示例:
#include <stdio.h>
#define MAX 15
int main()
{
int n, i, j, k, row, col, magic[MAX][MAX];
printf("请输入一个奇数n(n<=15):");
scanf("%d", &n);
if (n < 1 || n > MAX || !(n % 2))
{
printf("输入错误!\n");
return 1;
}
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
magic[i][j] = 0; // 初始化
i = 0;
j = n / 2;
for (k = 1; k <= n * n; k++)
{
magic[i][j] = k;
row = (i - 1 + n) % n;
col = (j + 1) % n;
if (magic[row][col])
{
i = (i + 1) % n;
}
else
{
i = row;
j = col;
}
}
printf("魔方阵为:\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%3d ", magic[i][j]);
}
printf("\n");
}
return 0;
}
该代码使用了一个二维数组magic来存储魔方阵的数值,并使用了一个i、j变量来表示当前的位置。通过循环,依次填入1~n*n的数值,当下一个位置已经有数值时,向下移动一行,否则向右上方移动一格。最后输出生成的魔方阵。