#include <stdio.h> int main() { int a[25][25],n,i,j,k=1; printf("请输入行数:"); scanf("%d",&n); //上半三角(含对角线) for(i=0;i<n;i++); { for(j=0;j<=i;j++) { if(i%2==0) a[i-j][j]=k; else a[j][i-j]=k; k++; } } //下半三角 for(i=n;i<2*n;i++) { for(j=0;j<=2*n-i;j++) { if(i%2==0) a[i+j][n-j]=k; else a[n-j][i+j-n+1]=k; k++; } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%4d",a[i][j]); } printf("\n"); } return 0; }
希望输出的结果是(例如n=6):
1 2 6 7 15 16
3 5 8 14 17 26
4 9 13 18 25 27
10 12 19 24 28 33
11 20 23 29 32 34
21 22 30 31 35 36
0puppy0