页码40页

因为填数字只有一个顺序就是先 下 - 左 - 上 - 右 -下 。。。

所以写了四个函数代表四种步骤 执行 下 这个函数 跳出条件有两种 一种是撞墙 另外一种是

撞到自己走过的路 跳出后就执行下一个步骤 另外要注意的是 下 和 右 这两个步骤 需要 传入 参数 n

它们的墙是参数 n

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cmath>
 4 #include <cstring>
 5 #include <cstdlib>
 6
 7 using namespace std;
 8
 9 int a[10][10] = {0};
10 int i = 1;
11 int x, y;
12 int step1 (int n)
13 {
14     while(y+1 < n && !a[x][y+1] )
15     {
16         y = y + 1;
17         i++;
18         a[x][y] = i;
19     }
20     return 1;
21 }
22 int step2 ()
23 {
24     while(x-1 >= 0 && !a[x-1][y] )
25     {
26         x = x - 1;
27         i++;
28         a[x][y] = i;
29     }
30     return 1;
31 }
32 int step3 ()
33 {
34     while( y-1 >= 0 && !a[x][y-1] )
35     {
36         y = y - 1;
37         i++;
38         a[x][y] = i;
39     }
40     return 1;
41 }
42 int step4 (int n)
43 {
44     while(x + 1 < n && !a[x+1][y] )
45     {
46         x = x + 1;
47         i++;
48         a[x][y] = i;
49     }
50     return 1;
51 }
52
53 int main()
54 {
55     int n, j, k;
56     scanf("%d",&n);
57     x = n-1;
58     y = 0;
59     a[x][y] = 1;
60     //printf("x = %d , y = %d , i = %d \n",x,y,i);
61     for(i=1;i<n*n;)
62     {
63         step1(n);
64         //printf("x = %d , y = %d , i = %d \n",x,y,i);
65         step2();
66         step3();
67         step4(n);
68     }
69     for(j=0;j<n;j++)
70     {
71         for(k=0;k<n;k++)
72         {
73             printf("%3d",a[k][j]);
74         }
75         printf("\n");
76     }
77     return 0;
78 }

转载于:https://www.cnblogs.com/16-CHQ/p/6428055.html

紫书 程序 3-3 蛇形填数相关推荐

  1. 蓝桥杯真题——蛇形填数(c语言)

    目录 一.题目描述 二.解题思路 三.程序操作 一.题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 如下图所示,小明用从 1 开始的正整数"蛇形" ...

  2. C语言(24)蛇形填数

    描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 输入 直接输入方陈的维数,即n的值.( ...

  3. 2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数

    2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数 Ideas 这题其实严格意义上属于一道找规律的题目,并不是啥算法题. 我们可以先按照它的规律多写几行. 1 2 6 7 ...

  4. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数

    这道题同样还是: 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - D.蛇形填数 2020年第十一届蓝桥杯 - 省赛 - Java研究生组 - D.蛇形填数 Ideas 这题其实严格意义 ...

  5. 计算机精英协会考核题 —— 第二题:蛇形填数

    题目 2.蛇形填数 给出 n * n 方阵,要求从 1 开始按顺序依次填写,填写方式如下: n = 4 时, 1 8 9 16 2 7 10 15 3 6 11 14 4 5 12 13 输入 n,请 ...

  6. 第十一届蓝桥杯A组省赛填空试题 C: 蛇形填数(Java)

    试题 C: 蛇形填数 本题总分:10 分 [问题描述] 如下图所示,小明用从 1 开始的正整数"蛇形"填充无限大的矩阵. 容易看出矩阵第二行第二列中的数是 5.请你计算矩阵中第 2 ...

  7. 信息学奥赛一本通 2045:【例5.13】蛇形填数

    [题目链接] ybt 2045:[例5.13]蛇形填数 [题目考点] 1. 二维数组 2. 方向数组(可能用到) int dir[4][2] = {{1,0},{0,-1},{-1,0},{0,1}} ...

  8. 信息学奥赛一本通(2045:【例5.13】蛇形填数)

    2045:[例5.13]蛇形填数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 374     通过数: 191 [题目描述] 在n×nn×n方阵里填入1,2,3 ...

  9. NYOJ33 - 蛇形填数

    描述: 在n*n方陈里填入1,2,-,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 输入: 直接输入方陈的维数,即n的值.( ...

  10. 南阳oj入门题-蛇形填数

    /** 蛇形填数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 ...

最新文章

  1. glibc-2.23_malloc_consolidate_浅析
  2. 将zookeeper、Tomcat、redis部署成windos服务
  3. 网页禁用鼠标右键和复制功能兼容方式
  4. 参加双车项目的一些感触
  5. win10禁止数字签名
  6. 定义整型数组_C++数组的定义与初始化(学习笔记:第6章 01)
  7. java创建response对象_javaweb入门-----request与response的作用
  8. pthread_create()在C和C++使用区别
  9. 51Nod 1509加长棒
  10. 深入理解Java虚拟机 学习总结
  11. FPGA学习经验分享——入门篇
  12. 关于计算机体系结构-北桥和南桥
  13. Unity中关于IphoneX的屏幕适配
  14. centos7 oracle 打补丁
  15. UVA1665 Islands (并查集)
  16. OpenCV实战——拟合直线
  17. 第4章第1节:如何往幻灯片中插入指定行和列的表格 [PowerPoint精美幻灯片实战教程]
  18. publiccms部署步骤
  19. 育儿-《让孩子远离焦虑》书中的精髓:家长如何帮助孩子解决他们自身的焦虑问题。
  20. mysql前段编写_HTML、CSS、JavaScript、PHP、 MySQL 的学习顺序是什么?

热门文章

  1. Maven项目SSM整合中mysql8.0.11对应Druid版本问题以及pom.xml写法
  2. cordova项目打包并更新腾讯开放平台安装包、加固重新签名步骤
  3. 软考-信息系统项目管理师-项目管理成熟度模型
  4. 什么是分布式锁?redis、zookeeper、etcd实现分布式锁有什么不同之处?
  5. React.js 开发常见问题
  6. git显示服务器所有分支,怎么拉取git服务器上面的分支到本机?
  7. 海通证券签约神策数据 数据赋能构建数字化运营闭环
  8. 行业谈实践,客户送祝福
  9. SQL优化 · 经典案例 · 索引篇
  10. 美开发数据自毁技术适用云计算架构