#include
#include
main()
{
int e,d,i;
scanf("%d",&e);
d=e*e;
int a[10],b[10][10];
for(i=1;i<=d;i++)
a[i-1]=i;
int count=1;
while(count<=d)
{
int dy=0,dx=e-1,c=e-1,demp=1;
if(count<=e)
b[0][e-1]=a[count-1];
else
{
int f=count-e;
while(f-2*c>=0)
{ f=f-2*c;
dy=dy+pow(-1,demp+1)*c;
dx=dx+pow(-1,demp)*c;
demp++;
c--;
}
if(f>c)
{ dx=dx+pow(-1,demp)*(f-c);
dy=dy+pow(-1,demp+1)*c;
}
else
dy=dy+pow(-1,demp+1)*f;
b[dy][dx]=a[i-1];
}
count++;
}
for(int r=0;r<e;r++)
{
for(i=0;i<e;i++)
printf("%-2d",b[r][i]);
printf("\n");
}
}
自己想的解法,然后再输入e后,程序崩溃。。。。
本人小白一个,求大佬帮助