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

    这个作业属于哪个课程 C语言程序设计II
    这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/MS/homework/3206
    我在这个课程的目标是 能够比较好的使用递归编程
    这个作业在哪个具体方面帮助我实现目标 让我学到的新的知识点,也让我更加了解了我的专业学习
    参考文献 C语言程序设计II


    7-1 汉诺塔问题
    汉诺塔是一个源于印度古老传说的益智玩具。据说大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着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 c,char b);
    int main(void)
    {
    	int n;
        char a, c, b;
    	scanf("%d
    ",&n);
    	scanf("%c %c %c",&a,&c,&b);
    	hanio(n,a,c,b);
    	
    	return 0;
    }
    void hanio(int n,char a,char c,char b)
    {
    	if(n==1)
    	  printf("%d: %c -> %c
    ",n,a,c);
    	else{
    		hanio(n-1,a,b,c);
    		printf("%d: %c -> %c
    ",n,a,c);
    		hanio(n-1,b,c,a);
    	}
    }
    

    2)设计思路

    3)本题调试过程中遇到的问题及解决方案
    本题是根据书上的代码写出来的,所以没什么问题。但是递归的过程还是有些不懂。
    4)运行结果截图

    预习题:
    数组指针:指向数组地址的指针即为数组指针。例如:p[10],p是指向数组的指针,即为数组指针。
    指针数组:如果数组中的各个元素都是指针类型,用于存放内存地址,那么这个数组就是指针数组。例如:int *p[10]就是一个指针数组。
    函数指针:定义一个指针变量,使它指向函数,这就是函数指针。例如:int fun(int x);int *p;p=fun;指针p指向函数fun,p就是函数指针。
    指针函数:这是个函数,函数的返回值是一个同类型的指针。例如:int *fun(a);这就是一个指针函数。
    二级指针:指向指针的指针。

    学习进度条

    本周所花时间 代码行数 学到的知识点 目前比较疑惑的问题
    第一周 一天 50 关于数组的使用 数组的定义和使用还不是很了解
    第二周 一天 60 对于指针的了解和使用 基本上还好
    第三周 一天 100 关于对数组更深刻的理解 对于这类问题还不知道怎么解决
    第四周 两天 200 如何对数组中的元素进行排序 不能完全靠着思维打代码有些地方不知道怎么用代码表示
    第五周 两天 199 了解到更多关于数组的使用 对于数组的使用还不太了解
    第六周 两天 75 对于指针有了初步的了解 还没有完全掌握指针这个知识点,不知道指针该什么时候用
    第七周 两天 8 对于自定义函数稍微理解了一点 对于数组这个知识点还是不会
    第八周 两天 97 主要还是自定义函数 对于很多知识点还只是一知半解
    第九周 两天 75 学习了关于结构的使用 感觉都不会。。
    第十一周 一天 22 学习了递归 对于递归这个知识点的应用不太懂

    结对编程:与队友一起写会有事半功倍的效果,也避免了一些不该出现的错误。而且两个人还可以互相解决各自的问题。

    学习感想:这一周我们的题目难度比较大,这也使我意识到简单的完成作业并不能使我们学好这一门课程,我的努力还不够。我应该更加努力,而不是只知道完成作业。

  • 相关阅读:
    [非专业翻译] Mapster
    Js 之TreeGrid使用
    Java 之无限级分类
    Layui 之layedit动态赋值
    Java 之配置修改代码不重启服务器
    Java 之QueryRunner实现增删改查
    Java 之c3p0连接池 + dbutils例子
    PHP 之阿里云短信插件
    Java 之数据库工具类
    Java 之myEclipse破解代码
  • 原文地址:https://www.cnblogs.com/hltltp/p/10845597.html
Copyright © 2011-2022 走看看