#include <stdio.h>
int main()
{
static int row,clumn,array[15][15]={0};
static int num,cnt=2,i=0,j=0,half;
int n,m;
printf("请输入行和列(行列均小于15)\n");
L1: scanf("%d%d",&row,&clumn);
if(row<=0||row>15||clumn<=0||clumn>15)
goto L1;
num=row*clumn;
if(num%2!=0)
half=num/2+1;
half=num/2;
array[0][0]=1;
array[row-1][clumn-1]=num+1-1;
L2: while(cnt<=half)
{
if((0==i||0==j)&&(i+1<row)&&(j+1<clumn))
{
if(0==j)
{
i++;
for(;;i--,j++)
{
array[i][j]=cnt;
array[row-1-i][clumn-1-j]=num+1-array[i][j];
cnt++;
if(0==i||clumn-1==j)
goto L2;
}
}
if(0==i)
{
j++;
for(;;i++,j--)
{
array[i][j]=cnt;
array[row-1-i][clumn-1-j]=num+1-array[i][j];
cnt++;
if(0==j||row-1==clumn)
goto L2;
}
}
}
}
for(m=0;m<row;m++)
{
for(n=0;n<clumn;n++)
printf("%5d",array[m][n]);
printf("\n");
}
getchar();
getchar();
return 0;
}
vc下通过验证 ^_^