C语言 打印5阶魔方阵
Ⅰ)魔方阵介绍
Ⅱ)魔方阵举例
Ⅲ)打印五阶魔方阵
#include<stdio.h>
int main()
{
int i, j, x = 1, y = 3, a[6][6] = { 0 }; //因为数组下标要用1到5,所以数组长度是6
for (i = 1; i <= 25; i++)
{
a[x][y] = i; //将1到25所有数存到存到数组相应位置
if (x == 1 && y == 5)
{
x = x + 1; //当上一个数是第1行第五列时,下一个数放在它的下一行
continue; //结束本次循环
}
if (x == 1) //当上一个数是是第1行时,则下一个数行数是5
x = 5;
else
x--; //否则行数减1
if (y == 5) //当上一个数列数是第5列时,则下一个数列数是1
y = 1;
else
y++; //否则列数加1
if (a[x][y] != 0) //判断经过上面步骤确定的位置上是否有非零数
{
x = x + 2; //表达式为真则行数加2列数减1
y = y - 1;
}
}
for (i = 1; i <= 5; i++) //输出
{
for (j = 1; j <= 5; j++)
printf("%4d", a[i][j]);
printf("\n");
}
}
Ⅳ)运行结果