• 第十一周作业


    本周作业头

    这个作业属于那个课程 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 递归函数 ···

    学习感悟

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

    结队编程

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

  • 相关阅读:
    blender 2.8 [学习笔记-033] 编辑模式-滑动边线
    blender 2.8 [学习笔记-032] 编辑模式-随机(光滑)
    blender 2.8 [学习笔记-031] 编辑模式-光滑
    blender 2.8 [学习笔记-030] 编辑模式-旋转
    blender 2.8 [学习笔记-029] 编辑模式-多边形建形
    TurtleBot3使用课程-第一节a(北京智能佳)
    ViperX 300 Robot Arm 机械臂 “5自由度和360°全方位旋转”
    TurtleBot 3 & 2i ROS开源实验平台
    在人工智能实验平台下对主流舵机的简介
    走进车联网,你将更深入地了解无人车和自动驾驶技术
  • 原文地址:https://www.cnblogs.com/H468/p/10846900.html
Copyright © 2020-2023  润新知