#include <stdio.h>
void main()
{
int n;
int num[100];
int op[100];
int p[100];
int x,y;
int i;
int in;
int t;
int v=1;
scanf("%d",&n);
op[0]=t=n;
i=1;
while(t-->0)
{
op[i]=op[i+1]=t;
i+=2;
}
for(int i=0;i<n*n;i++)
num[i]=i+1;
int en=n*n-1;
for(int i=0;i<n+(n-1);i++)
{
if(i%4==0)
{
for(int j=0;j<op[i];j++)
{
p[num[j]]=v++;
num[j]=0;
}
}
else if(i%4==1)
{
for(int j=0;j<op[i];j++)
{
in=op[i]+(op[i-1])*(j+1);
p[num[in]]=v++;
num[in]=0;
}
}
else if(i%4==2)
{
for(int j=0;j<op[i];j++)
{
in=en-j-1;
p[num[in]]=v++;
num[in]=0;
}
}
else if(i%4==3)
{
for(int j=0;j<op[i];j++)
{
in=1+en-(op[i-3])*2-(op[i-3]*j);
p[num[in]]=v++;
num[in]=0;
}
int *temp=new int[n*n];
int c=0;
for(int i=0;i<n*n;i++)
{
if(num[i]!=0){ temp[c++]=num[i]; }
}
for(int i=0;i<c;i++)
{
num[i]=temp[i];
}
for(int i=0;i<n*n-c;i++)
{
num[n*n-i-1]=0;
}
delete[] temp;
en=c-1;
}
}
printf("\n");
for(int i=1;i<=n*n;i++)
{
printf("- ",p[i]);
if(i%n==0)
{
printf("\n");
}
}
}
꿇어라 병 쉬나
%d
%d가 안되네
아무튼 일차원배열 p에 있으니까 알아서 출력해보렴
개씨팔 이딴 것도 코드라고 짠거냐? 개븅신
자살추천드리고 갑니다