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

2025-10-10 03:12:07

1、打开visual C++ 6.0-文件-新建-文件-C++ Source File

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

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

2、定义数组和变量:

#include<stdio.h>

int main()

{

    int i,j,x=1,y=3,a[6][6]={0};                 /*因为数组下标要用1到5,所以数组长度是6*/

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

3、给数组赋值:

    for(i=1;i<=25;i++)

    {

        a[x][y] =i;                         /*将1到25所有数存到数组相应位置*/

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

4、判断:

        if(x==1&&y==5)

        {

            x=x+1;                          /*当上一个数是第1行第五列时,下一个数放在它的下一行*/

            continue;                           /*结束本次循环*/

        }

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

5、计算数的位置:

        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;

        }

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

6、将二维数组输出:

    for(i=1;i<=5;i++)                           /*将二维数组输出*/

    {

        for(j=1;j<=5;j++)

        {

            printf("%4d",a[i][j]);

        }

        printf("\n");                           /*每输出一行回车*/

    }

    return 0;

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

7、完整的源代码:

#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");                           /*每输出一行回车*/

    }

    return 0;

}

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢