废宅小林 2015-12-08 04:55 采纳率: 28.6%
浏览 2049

奇数阶的魔方阵问题,以3*3为例

以3*3魔方阵为例,运行如下代码后出现[0][2]和[1][0]出现连锁现象,怎么回事,怎么解决?望大神指教

#include<stdio.h>
int main()
{
    int n;//row&line
    int num,i=0,j=0,k,l;//loop
    printf("Input magic_map's n:");
    scanf("%d",&n);
    int map[n-1][n-1];
    for(k=0;k<n;k++)//format map[][] 
    {
        for(l=0;l<n;l++)
        {
            map[k][l]=0;
        }
    }
    while(n%2==0)
    {
        printf("input n again:");
        scanf("%d",&n);
    }
    map[0][1]=1;//put 1 to the [0][1] 
    i=-1;j=2;//move to put 2
    for(num=2;num<=n*n;num++)
    {
        if(i<0&&j>(n-1))//A 
        {
            map[i+2][j-1]=num;
            i=i+2;j=j-1;//note the location of data,the same as follows
            printf("here is map[%d][%d]=%d from A\n",i,j,map[i][j]);    
        }else if(i<0)//B 
        {
            map[n-1][j]=num;
            i=n-1;j=j;
            printf("here is map[%d][%d]=%d from B\n",i,j,map[i][j]);
        }else if(j>n-1)//C 
        {
            map[i][0]=num;
            i=i;j=0;
            printf("here is map[%d][%d]=%d from C\n",i,j,map[i][j]);
        }else if(map[i][j]!=0)//D 
        {
            map[i+2][j-1]=num;//map[2][0]
            i=i+2;j=j-1;
            printf("here is map[%d][%d]=%d from D\n",i,j,map[i][j]);    
        }else if(map[i][j]==0)//E 
        {
            map[i][j]=num;
            printf("here is map[%d][%d]=%d from E\n",i,j,map[i][j]);    
        }
        i--;j++;
        printf("============================================\n");   
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("%5d",map[i][j]);
        }
        printf("\n");
    }
    return 0;
}
![图片说明](https://img-ask.csdn.net/upload/201512/08/1449550451_731619.png) 
  • 写回答

2条回答 默认 最新

  • ysuwood 2015-12-08 05:00
    关注

    连锁是什么意思?值都一样?

    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看