您的位置首页百科知识

用C语言编写,设计魔方阵

用C语言编写,设计魔方阵

的有关信息介绍如下:

用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;

}