第十一周编程总结

|第十一周 |五道题 |
|作业属于课程 |C语言程序设计 |
|作业要求 |https://edu.cnblogs.com/campus/zswxy/computer-scienceclass1-2018/homework/3205|
|课程目标 |学会将多个函数组织起来,学会使用递归函数解决问题|
|在哪方面帮我实现目标 |知道了什么是递归及其复杂性 |
|参考文献 |https://i.cnblogs.com/EditPosts.aspx?opt=1|

一、基础作业

第一题

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

题图1.jpg

请编写程序,输入汉诺塔圆片的数量,输出移动汉诺塔的步骤。

实验代码

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

设计思路

第一步:编译头文件
第二步:汉诺塔函数声明
第三步:定义各种变量,输入n
第四步:a为起始柱,c为目的柱,b为过渡柱
第五步:定义汉诺塔函数
第六步:完成步骤

本题调试遇到的问题及解决方法


错误:格式出现错误
解决方法:读题认真

流程图

运行结果截图

后面几题不会难度太大,所以我并未写。

预习题

1、指针数组
例:
char *a[5];(字符指针数组)
数组的每个元素都是指针类型,用于存放内存地址。

2、数组指针
例:
int a[4]={1,2,3,4};
int *p;
p=a;

3、指针函数
定义一个指针变量,接收函数的入口地址,让它指向函数,这就是函数指针通过指针调用函数。
一般格式:(函数指针名) (参数表)
例:
fun函数
(
funptr)(3,5)

4、函数指针
一般格式:类型名(变量名)(参数类型名)
例:int (
funptr)(int int);

5、二级指针
一般定义:
类型名 * *变量名
例:
int a=10,b=20,
int pa=&a,pb=&b;
int * ppa=&pa; ppb=&pb;
所以
ppa=10, *ppb=20;
6、单向链表 (https://baike.sogou.com/v10718780.htm?fromTitle=单向链表)
单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。 通过指针连接起来,但是只能单向遍历的内存块。由于它是单向的,或者说不可逆的,所以我们可以把它比作我们的人生:小学->中学->大学->工作->养老。

二、学习进度条


三、描述结对编程的过程和结对编程的优缺点


优缺点:在我思考问题时,编程对象会主动提出帮助,我写代码,他输入代码,合作愉快,互帮互助。

四、学习感悟

1、看书很重要,明白怎样运用知识来写代码。
2、团结协作很重要,大家一起思考,共同完成作业。
3、好好学习,天天向上。

posted on 2019-05-10 19:31  彦页颜  阅读(106)  评论(0编辑  收藏  举报