不知道为什么啥也没有输出
#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;
}