基础C语言简单填空题

来源:百度知道 编辑:UC知道 时间:2024/05/10 09:22:48
输出“魔方阵”。要求输出1——n*n的自然数构成的魔方阵
#include <stdio.h>
main()
{ int a[16][16],i,j,k,p,n;
p=1;
while( (1) )
{printf("enter n(n=1 to 15):");
scanf("%d",&n);
if ((2) )
p=0;
}
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
a[i][j]=0;
j= (3) ;
a[1][j]=1;
for (k=2;k<=n*n;k++)
{ i=i-1;
(4) ;
if ((i<1)&&(j>n))
{i=(5) ;
j=j-1;
}
else
{if (i<1) i=n;
if (j>n) j=(6) ;
}
if ((7) )
a[i][j]=k;
else
{i=i+2;
j=j-1;
a[i][j]=k;
}
}
for (i=1;i<=n;i++)

给,已经填好了,并且编译运行确认:
#include <stdio.h>
main()
{ int a[16][16],i,j,k,p,n;
p=1;
while( p ) //(1)
{printf("enter n(n=1 to 15):");
scanf("%d",&n);
if ( n>=1&&n<=15 )//(2)
p=0;
}
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
a[i][j]=0;
j= n/2+1 ;//(3)
a[1][j]=1;
for (k=2;k<=n*n;k++)
{ i=i-1;
j=j+1;//(4)
if ((i<1)&&(j>n))
{i=i+2 ; //(5)
j=j-1;
}
else
{if (i<1) i=n;
if (j>n) j=1 ; //(6)
}
if (a[i][j]==0 ) //(7)
a[i][j]=k;
else
{i=i+2;
j=j-1;
a[i][j]=k;
}
}
for (i=1;i<=n;i++)
{for (j=1;j<=n;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}

运行结果:
输入3,则输出
8 1 6
3 5 7
4 9 2
输入5,则输出
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21