本周作业头
这个作业属于那个课程 | 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 | 递归函数 | ··· |
学习感悟
本周学完了递归函数,马上就要结课了,要自己课后多学习了。
结队编程
本周题目过难结队编程效果不佳,两个人都无从下手。