帮菜鸟看看代码哪里出了问题吧!感激不尽
查看原帖
帮菜鸟看看代码哪里出了问题吧!感激不尽
63362
Zhu_Yi楼主2020/12/22 20:33

不知道为什么啥也没有输出

#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<40;xi++){
		for(yi=1;yi<40;yi++){
			num[xi][yi]=0;// 把数组所有元素都设成0 
		}
	}
	
	
	num [(N+1)/2][1] = 1;//第一行中间的数设成1 
	while (K <= N*N ){
		while (y==1 && x!=N){	//第一种情况 
		y=N; x++;
		num [x][y]=K; 
		K++;
		}
		while (y==N && x!=1){//第2种情况 
		y--;x=1;
		num [x][y]=K;
		K++;
		}
		while(y==1 && x==N){//第3种情况 
		x--;
		num [x][y]=K;
		K++;	
		}
		while(y!=1 && x!=N){//第4种情况 
			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; 
} 

2020/12/22 20:33
加载中...