9.1腾讯模拟考编程题之蛇形数组
数入N得出类似上图的形式。
代码:
#include <stdio.h>
#include <string.h>
int main(void) {
int N;
scanf("%d",&N);
int s[N][N];
memset(s,0,sizeof(s));
int x=0,y=0,tot=1;
s[0][0] = 1;
int i,j;
while(tot < N*N){
while(y+1<N && !s[x][y+1])//向右走
s[x][++y] = ++tot;
while(x+1<N && !s[x+1][y])//向下走
s[++x][y] = ++tot;
while(y-1>=0 && !s[x][y-1])//向右走
s[x][--y] = ++tot;
while(x-1>=0 && !s[x-1][y])//向上走
s[--x][y] = ++tot;
}
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
printf("%4d",s[i][j]);
}
printf("\n");
}
return 0;
}