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

    这个作业属于哪个课程 c语言程序设计II
    作业要求 https://edu.cnblogs.com/campus/zswxy/MS/homework/2829
    目标 学习递归函数等的使用
    参考文献 老师上课时的讲解以及C语言书籍

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

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

    请编写程序,输入汉诺塔圆片的数量,输出移动汉诺塔的步骤。
    输入格式
    圆盘数 起始柱 目的柱 过度柱
    输出格式
    移动汉诺塔的步骤
    每行显示一步操作,具体格式为:
    盘片号: 起始柱 -> 目的柱
    其中盘片号从 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
    实验代码:

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

    思路:参照书上240页 并参考询问了室友所以基本理解了。
    运行截图:
    预习作业
    第十二周的教学内容是:第十一章 指针进阶
    请大家查阅资料,思考如下问题:
    请举实例解释以下几个概念:数组指针,指针数组,指针函数,函数指针,二级指针,单向链表。(无实例不给分)
    请用自己的理解回答。如果有引用他人的文字,请一定要标出出处(使用Markdown的链接方式)。
    数组指针:是指向数组的指针。
    例如:int(p)[10];p即为指向数组的指针,又称数组指针。
    指针数组是一个存放指针的数组。
    例如:int arr[];//[]优先级高,所以arr首先是一个数组,里面存放的是一个个指针int* arr[];//数组中放入二级指针
    指针函数:是指带指针的函数,即本质是一个函数,函数返回类型是某一类型的指针。如
    float *fun()
    float *p
    p = fun(a)
    int f(x,y)
    函数指针:是指向函数的指针变量,即本质是一个指针变量。如
    int (
    f) (int x)
    f=func
    二级指针:A(即B的地址)是指向指针的指针,称为二级指针
    单向链表:单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点;列表是由结点构成,head指针指向第一个成为表头结点,而终止于最后一个指向NULL的指针。(书C语言程序设计 285页)
    查阅资料:https://www.cnblogs.com/mq0036/p/3382732.html

    周/日期 所花时间 代码行数 学到的知识
    第一周 7小时 100 学到了数组知识
    第二周 7个小时 110 对于指针的使用
    第三周 8个小时 100 对数组更加深刻的理解
    第四周 8小时 120 冒泡排序选择排序
    第五周 10小时 130 字符串的读取排序
    第六周 9个小时 120 指针的使用
    第七周 10个小时 110 数组指针的运用
    第八周 10个小时 150 动态内存分配
    第九周 11个小时 160 结构变量的使用
    第十周 11个小时 170 函数程序结构
    第十一周 12个小时 180 递归函数 宏定义
  • 相关阅读:
    C# 之 判断或设置以管理员身份运行程序
    幻灯片母版 讲义母版 备注母版 区别 技巧
    ArcGIS中国工具2.5正式发布
    ArcGIS教程:曲率
    arcgis pro行列转换
    在 Python 中使用 in_memory 工作空间
    ArcGIS10.6的新功能
    ArcGIS Pro 获得工具的个数
    Android Push Notification实现信息推送使用
    SignalR推送服务在Android的实现 SignalA
  • 原文地址:https://www.cnblogs.com/clearlove1215/p/10846490.html
Copyright © 2011-2022 走看看