南陽 33 蛇形填數
阿新 • • 發佈:2019-02-11
先判斷,再填數;在很多情況下,最好在做一件事之前檢查是不是可以做,而不是做完再後悔。
#include<stdio.h> #include<string.h> int main() { int a[110][110]; int n,m,i,j; scanf("%d",&n); memset(a,0,sizeof(a)); m=a[i=0][j=n-1]=1; while(m<n*n) { while(i+1<n&&!a[i+1][j]) a[++i][j]=++m; while(j-1>=0&&!a[i][j-1]) a[i][--j]=++m; while(i-1>=0&&!a[i-1][j]) a[--i][j]=++m; while(j+1<n&&!a[i][j+1]) a[i][++j]=++m; } for(i=0;i<n;i++) { for(j=0;j<n-1;j++) printf("%d ",a[i][j]); printf("%d\n",a[i][j]); } return 0; }