第十一周作业

第十一周作业

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2825
我在这个课程的目标是 递归函数的使用
这个作业在哪个具体方面帮助我实现目标 上课听老师讲解,做题目,与同学交流
参考文献 C语言程序设计II

7-1 汉诺塔问题*

汉诺塔是一个源于印度古老传说的益智玩具。据说大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着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 b,char c);
int main ()
{
    int n;
    char a,b,c;

    scanf("%d\n",&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",n,a,b);
    }
    else{
        hanio(n-1,a,c,b);
        printf("%d: %c -> %c\n",n,a,b);
        hanio(n-1,c,b,a);
    }
}

实验思路

按书上写的,然后老师上课也有讲这个,先将一个放到空柱,再将另一个再放,同理一样的操作

实验截图

学习进度

周/日期 这周花的时间 代码行数 学到的知识点简介 目前比较困惑的
3/3-3/9 6h 40 文件的处理以及对于数据的处理 对于指针的不熟悉
3/10-3/15 7h 45 文件的处理以及对于数据的处理 二维数组的运用
3/16-3/22 8h 130 选择排序及其他二维数组利用 知识点中的冒泡排序
3/23-3/29 8h 70 字符串的运用 冒泡排序与字符串结合运用
3/30-4/5 7h 140 指针的运用 指针结合具体题目不很懂
4/6-4/12 8h 150 掌握指针、数组、地址之间的用法 之间的相互联系不懂
4/13-4/18 8h 156 灵活运用字符串 做题目不会,很多地方不懂
4/19-4/26 9h 173 结构的运用 不是很会,借鉴了同学的
5-6/5-10 6h 60 递归函数的使用 后面的大题,不会,不太懂
posted @ 2019-05-10 19:28  外滩海浪  阅读(159)  评论(1编辑  收藏  举报