用数组和循环做!!
输出这样形式的数一共有N行1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
#include <stdio.h> int main(void) { int x=1,n,max,m,k,i,j,a[100][100]; printf("n="); scanf("%d",&max); n=max;j=m=-1;i=k=0; while(1) { for(m=0;m<n;m++) a[i][j+=x]=++k; if(!--n) break; for(m=0;m<n;m++) a[i+=x][j]=++k; x*=-1; } for(i=0;i<max;i++) { for(j=0;j<max;j++) printf("%5d",a[i][j]); printf("\n\n\n"); } return 0; }