其他分享
首页 > 其他分享> > 十一周作业

十一周作业

作者:互联网

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass4-2018/homework/3203
我在这个课程的目标是 递归函数
这个作业在那个具体方面帮助我实现目标 了解,使用递归函数
参考文献 c语言程序设计

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

1.实验代码:

#include<stdio.h>
void hanio(int n,char a,char b,char c);
int main(void)
{
    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);
        
    }
    return ;
}

.2流程图:

3.错误截图:

遇到的问题:在scanf函数输入时出现错误,出现了一个很容易忽略的问题,就是空格和回车会结束,然后如果数据是字符型的就容易出现输入的和预想的不一样。
解决方法:链接https://blog.csdn.net/zqixiao_09/article/details/50189477

4运行截图:

学习总结:这一个礼拜的作业综合性很强,做起来具有挑战性,就第一个题目而言,就是考了一个小问题,很多人,包括我自己在这个关于scanf输入的这一个容易忽略的问题上,出现了问题,然后就卡住了。第二个题目,Ai程序,一个很贴近生活的题目,做起来,综合性很大,需要考虑的情况也很多,挺难得。不过做出来,还是很兴奋的,总的来说,还是要加强训练,提高知识的综合能力。

折线图:

学习进度表:

累计代码行数和博客字数

时间 博客字数 代码行数
第一周 0 300
第二周 6100 100
第三周 6300 250
第四周 6200 250
第五周 6300 140
第六周 6400 200
第七周 6600 194
第八周 13510 200
第九周 8000 300
第十周 15000 100
第十一周 8000 200

编程总结:这个礼拜的编程总结,有多的问题,俩个人都不会,就只能看着,应该是题目变难了,这个礼拜合作起来,不方便,非常难受,还是因为自己不厉害吧,但是,俩个人一起想题目的话,效率还是很高的,毕竟每个人都有自己的看法,俩个人,想问题也比较全面。还是利大于弊,挺好的。以后要继续坚持。

标签:十一,圆盘,scanf,作业,char,int,汉诺塔,hanio
来源: https://www.cnblogs.com/xudo/p/10846131.html