永发信息网

编程一个方阵问题

答案:1  悬赏:70  手机版
解决时间 2021-05-12 03:24
  • 提问者网友:人傍凄凉立暮秋
  • 2021-05-11 07:44

1

2

6

7

3

5

8

13

4

9

12

14

10

11

15

16

要求写一个算法,表示如图规律n*n矩阵,最好用伪代码表示
最佳答案
  • 五星知识达人网友:青灯有味
  • 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就得到你给的例子

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯