1 |
2 |
6 |
7 |
3 |
5 |
8 |
13 |
4 |
9 |
12 |
14 |
10 |
11 |
15 |
16 |
编程一个方阵问题
- 提问者网友:人傍凄凉立暮秋
- 2021-05-11 07:44
- 五星知识达人网友:青灯有味
- 2021-05-11 09:24
#include <stdio.h>
#define SIZE 20
int shuzi[SIZE][SIZE];
void ao(int n)
{
int i=1,j=1,m=1,k=1,p=1,q=n;
while(p<=q*q)
{
if(m==1)
{
shuzi[i][j]=p++;
k++;
if(k>n)
{
m=2;
n--;
k=1;
i++;
}
else
j++;
}
else if(m==2)
{
shuzi[i][j]=p++;
k++;
if(k>n)
{
m=3;
k=1;
j--;
}
else
i++;
}
else if(m==3)
{
shuzi[i][j]=p++;
k++;
if(k>n)
{
m=4;
n--;
i--;
k=1;
}
else
j--;
}
else if(m==4)
{
shuzi[i][j]=p++;
k++;
if(k>n)
{
m=1;
j++;
k=1;
}
else
i--;
}
}
for(i=1;i<=q;i++)
{
printf("\n");
for(j=1;j<=q;j++)
printf("%4d",shuzi[i][j]);
}
printf("\n");
}
int main()
{
int n;
printf("Please input N:");
scanf("%d",&n);
if(n>20||n<=0)
{
printf("Too large!\n");
return 0;
}
ao(n);
printf("\n");
return 0;
}
第二题,我这个肯以任意输入行数,输入4就得到你给的例子