汉扬编程 C语言入门 C语言基础题:实验7-2-9 螺旋方阵 (20 分)

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

解题思路:

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

使用二维数组存放数值,t 来实现累加。通过两个循环变量来实现对螺旋方阵的实现。即改变 t 存放的位置

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

变量 x 控制行,变量 y 控制列。↑

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

index的作用↑

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

实现:

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

可以分为以下几个步骤:

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

1.先 x 不动,y向右边移动(增加y的值)

C语言基础题:实验7-2-9 螺旋方阵 (20 分)

第一步代码实现:↓

要注意每次进行该步骤都要在最后对y的值自减(进入上一列)

2.第二步,y不动,x 的值增加

第二步图解

要注意

3.第三步:x 不变,y减小(和第一步刚好相反)↓

第三步代码实现:↓

同样的,y在最后要自加

4.第四步:y 的值不变,x 的值减小(与第二步相反)↓

第四步:代码实现↓

5.剩下的就是一直循环以上四个步骤,直到全部数据录入数组

细节:

1.需要注意循环退出的出口(可以利用t的取值做为出口,也可以用x与y的取值)

完整代码:↓

源代码

#include<stdio.h>

int main()

{

int n,index = 1;

//1表示y加,-1表示y减;

//2表示x加,-2表示x减

int a[100][100];

int i = 0,x = 0,y = 0,t = 1;

scanf("%d",&n);

while(1)

{

//第一步

if(index == 1)

{

for(y = i;y < n-i;y++)

{

a[x][y] = t;

t++;

}

index = 2;

t–;

y–;

}

//第二步

if(index == 2)

{

for(x = i;x < n-i;x++)

{

a[x][y] = t;

t++;

}

index = -1;

t–;

x–;

}

//第三步

if(index == -1)

{

for(y;y >= i;y–)

{

a[x][y] = t;

t++;

}

index = -2;

t–;

y++;

i++;

}

//第四步

if(index = -2)

{

for(x;x >= i;x–)

{

a[x][y] = t;

t++;

}

index = 1;

x++;

}

//出口 也可以判断t是否等于n²

if(i >= n) break;

}

//将数组内容输出

for(x = 0;x < n;x++)

{

for(y = 0;y < n;y++)

printf("%3d",a[x][y]);

printf("\\n");

}

return 0;

}

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/cjia/6188.html

结构体的各种使用方法详细讲解-c\\c++

\”龟兔赛跑\”\”狼来了\”出自

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部