zoukankan      html  css  js  c++  java
  • 第十一周作业

    本周作业头

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://www.cnblogs.com/pengchen511/p/10564067.html
    我在这个课程的目标是 掌握递归函数
    这个作业在那个具体方面帮助我实现目标 汉诺塔问题
    参考文献 C语言程序设计

    基础作业

    单选题


    编程题

    7-1 汉诺塔问题* (10 分)

    汉诺塔是一个源于印度古老传说的益智玩具。据说大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘,大梵天命令僧侣把圆盘移到另一根柱子上,并且规定:在小圆盘上不能放大圆盘,每次只能移动一个圆盘。当所有圆盘都移到另一根柱子上时,世界就会毁灭。

    题图1.jpg

    请编写程序,输入汉诺塔圆片的数量,输出移动汉诺塔的步骤。

    输入格式

    圆盘数 起始柱 目的柱 过度柱

    输出格式

    移动汉诺塔的步骤
    每行显示一步操作,具体格式为:
    盘片号: 起始柱 -> 目的柱
    其中盘片号从 1 开始由小到大顺序编号。

    输入样例

    3
    a c b

    输出样例

    1: a -> c
    2: a -> b
    1: c -> b
    3: a -> c
    1: b -> a
    2: b -> c
    1: a -> c

    1)实验代码

    #include<stdio.h>
    void hanio (int n, char a, char b, char c);
    int main()
    {
        int n;
        char a,b,c;
        
        scanf("%d
    ",&n);
        scanf("%c %c %c",&a,&b,&c);
        hanio(n,a,b,c);
        
        return 0;
    }
    
    void hanio (int n, char a, char b, char c)
    {
        if(n==1)
        	printf("%d: %c -> %c
    ",n,a,b);
        else
    	{
            hanio (n-1,a,c,b);
            printf("%d: %c -> %c
    ",n,a,b);
            hanio (n-1,c,b,a);
        }
    }
    

    2)设计思路

    3)本体调试过程中遇到的问题及解决办法

    本体书上有解题思路,以及类似的题,跟上书上的思路没有什么问题

    4)运行结果截图

    预习作业

    第十二周的教学内容是:第十一章 指针进阶

    请大家查阅资料,思考如下问题:

    请举实例解释以下几个概念:数组指针,指针数组,指针函数,函数指针,二级指针,单向链表。(无实例不给分)

    请用自己的理解回答。如果有引用他人的文字,请一定要标出出处(使用Markdown的链接方式)。

    数组指针:就是指向数组的指针。 例:int (*p)[10];

    指针数组:数组元素全为指针的数组。 例:int *p[n];

    指针函数:返回类型为指针的函数。 例:int *max(int x, int y)

    函数指针:指向函数的指针变量。 例:int (*max)(int a, int b)

    二级指针:一个指针指向另一个指针。

    例:假设有一个 int 类型的变量 a,p1是指向 a 的指针变量,p2 又是指向 p1 的指针变量,它们的关系如下图所示:

    将这种关系转换为C语言代码:
    ?
    1
    2
    3

    int a =100;
    int *p1 = &a;
    int **p2 = &p1;
    

    指针变量也是一种变量,也会占用存储空间,也可以使用&获取它的地址。C语言不限制指针的级数,每增加一级指针,在定义指针变量时就得增加一个星号。p1 是一级指针,指向普通类型的数据,定义时有一个;p2 是二级指针,指向一级指针 p1,定义时有两个*。
    引用:https://www.jb51.net/article/91090.htm

    单向链表:由若干个同一结构类型的“结点”依次串接,其方向为单向。 例:head p1->next p2->next pn->next

    学习进度统计

    周/日期 这周所花时间 代码行 学到知识点简介 目前比较困惑的问题
    3/9--3/15 6h 88 文件的储存 文件的数据处理
    3/16--3/22 9h 69 二维数组 ···
    3/23--3/29 11h 112 二维数组 ···
    3/30--4/6 8h 58 字符串的使用 ···
    4/7--4/13 6h 66 指针的运用 ···
    4/14--4/20 7h 98 指针的运用 ···
    4/21--4/27 9h 108 指针与字符串 内存动态分配
    4/28--5/4 7h 87 结构的运用 ···
    5/5--5/11 6h 69 递归函数 ···

    学习感悟

    本周学完了递归函数,马上就要结课了,要自己课后多学习了。

    结队编程

    本周题目过难结队编程效果不佳,两个人都无从下手。

  • 相关阅读:
    【算法学习笔记】76.DFS 回溯检测 SJTU OJ 1229 mine
    【算法学习笔记】75. 动态规划 棋盘型 期望计算 1390 畅畅的牙签盒(改)
    【算法学习笔记】74. 枚举 状态压缩 填充方案 SJTU OJ 1391 畅畅的牙签袋(改)
    【算法学习笔记】73.数学规律题 SJTU OJ 1058 小M的机器人
    【算法学习笔记】72.LCS 最大公公子序列 动态规划 SJTU OJ 1065 小M的生物实验1
    【算法学习笔记】71.动态规划 双重条件 SJTU OJ 1124 我把助教团的平均智商拉低了
    【算法学习笔记】70.回文序列 动态规划 SJTU OJ 1066 小M家的牛们
    【算法学习笔记】69. 枚举法 字典序处理 SJTU OJ 1047 The Clocks
    【算法学习笔记】68.枚举 SJTU OJ 1272 写数游戏
    【算法学习笔记】67.状态压缩 DP SJTU OJ 1383 畅畅的牙签袋
  • 原文地址:https://www.cnblogs.com/H468/p/10846900.html
Copyright © 2011-2022 走看看