#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