文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>奇数阶魔方阵_动态数组实现

奇数阶魔方阵_动态数组实现

时间:2010-11-12  来源:剑子与剑痴

奇数阶魔方阵_动态数组实现   看了概念,写的代码。 双偶阶、单偶阶的还没有写出来。写完再别贴上吧   上代码:

//奇数阶魔方阵的排列
#include<stdio.h>
#include<stdlib.h>

void main()
{
    int **a;
    int i,j,n,k=1,_i,_j;
    
    do{
        printf("输入一个奇数: ");
        scanf("%d",&n);
        fflush(stdin);
    }while(n%2==0||n<3);

    a=(int **)malloc(n*sizeof(int *));//建动态数组
    if(!a) exit(-1);
    for(i=0;i<n;i++)
    {
        a[i]=(int *)malloc(n*sizeof(int ));
        if(!a[i]) exit(-1);
    }

    for(i=0;i<n;i++) //动态数组初始为0
        for(j=0;j<n;j++)
            a[i][j]=0;


    i=0; //组建魔方阵
    j=n/2;
    a[i][j]=k++;
    for(;;)
    {
        _i=(i-1+n)%n;
        _j=(j+1)%n;
        if(a[_i][_j]==0) a[i=_i][j=_j]=k++;
        else
        {
            _i=(i+1)%n;
            _j=j;
            if(a[_i][_j]==0) a[i=_i][j=_j]=k++;
            else break;
        }
    }

    for(i=0;i<n;i++) //输出魔方阵
    {
        printf("\n");
        for(j=0;j<n;j++)
            printf("%8d",a[i][j]);
    }
    getchar();
    
}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载