帮菜鸟看看代码哪里出了问题吧!感激不尽

P2615 [NOIP2015 提高组] 神奇的幻方

@[Zhu_Yi](/user/63362) 第四种情况出错了,一直死循环
by wmy_goes_to_thu @ 2020-12-22 20:42:58


同上
by Miquella @ 2020-12-22 20:52:44


@[expwmh](/user/107484) ok改成if解决了死循环,但是输出的数值有点匪夷所思 ```c #include<stdio.h> int main(){ int N,x,y,a; int xi,yi,xo,yo; int K = 1; x=1; y=1; scanf("%d",&N); int num [99][99]; for (xi=1;xi<99;xi++){ for(yi=1;yi<99;yi++){ num[xi][yi]=0; } } num [(N+1)/2][1] = 1; while (K <= N*N ){ if (y==1 && x!=N){ y=N; x++; num [x][y]=K; K++; } if (y==N && x!=1){ y--;x=1; num [x][y]=K; K++; } if(y==1 && x==N){ x--; num [x][y]=K; K++; } if(y!=1 && x!=N){ if(num[x+1][y-1]=0){ x++;y--; num [x][y]=K; K++; }else{ y++; num [x][y]=K; K++; } } } for (xo=1;xo<=N;xo++){ for(yo=1;yo<=N;yo++){ a = num[xo][yo]; printf("%d",a); printf(" "); } printf("\n"); } return 0; } ```
by Zhu_Yi @ 2020-12-22 23:45:17


@[expwmh](/user/107484) 我似乎知道问题在哪里了,感谢大佬!
by Zhu_Yi @ 2020-12-23 00:22:18


第四种情况里的if里应为两个=
by out8ygy @ 2021-02-02 18:20:16


|