📄 lind7-7.c
字号:
#include<stdio.h>
int a[100][100];
int i,j,z,n;
getn()
{
printf("Please input n(n%2==1).\n");
scanf("%d",&n);
if(n%2==0)
{
printf("A fault number.\n\n");
getn();
return;
}
else
{
return(n);
}
}
void a_z()
{
a[i][j]=z;
z++;
}
void yiban()
{
i=i-1;
j=j+1;
a_z();
}
void zuishang()
{
i=n-1;
j=j+1;
a_z();
}
void zuiyou()
{
i=i-1;
j=0;
a_z();
}
void yizhan()
{
i=i+1;
a_z();
}
int ar(int i,int j)
{
int t;
t=a[i][j];
return(t);
}
void paixu()
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
a[i][j]=0;
}
for(i=0,j=(n-1)/2,a[i][j]=1,z=2;z<=n*n;)
{
if(ar(i-1,j+1)==0&&i!=0&&j!=n-1)
yiban();
else if(ar(i-1,0)==0&&i!=0&&j==n-1)
zuiyou();
else if(ar(n-1,j+1)==0&&i==0&&j!=n-1)
zuishang();
else
yizhan();
}
}
nn(int b)
{
int d,f;
for(d=0;b>0;d++)
{
f=b%10;
b=b-f;
b=b/10;
}
return(d);
}
void print()
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
for(z=0;z<nn(n*n)-nn(ar(i,j));z++)
printf("0");
printf("%d ",a[i][j]);
if(j==n-1)
printf("\n\n");
}
}
void main()
{
n=getn();
paixu();
print();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -