用C语言编写,设计魔方阵
的有关信息介绍如下:在visual C++ 6.0上,用C语言编写,设计魔方阵
打开visual C++ 6.0-文件-新建-文件-C++ Source File
定义数组和变量:
#include
int main()
{
int i,j,x=1,y=3,a={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"); /*每输出一行回车*/
}
return 0;
完整的源代码:
#include
int main()
{
int i,j,x=1,y=3,a={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"); /*每输出一行回车*/
}
return 0;
}