• C语言博客作业--函数嵌套调用


    一、PTA题目

    6-4 十进制转换二进制

    1.设计思路

    定义一个整数a,代表n对2取余的余数。
    若(n<2)
    则为递归出口,输出a。
    否则
    递归公式,dectobin(n/2)
    输出a。
    

    2.代码截图

    3.调试问题

    • 一开始对递归函数的位置与输出的位置放的不对。
      解决方法:改变位置,先进入递归再输出。

    二、学生成绩管理系统

    1.画函数模块图,简要介绍函数功能。

    2.截图展示你的工程文件

    3.函数代码部分截图

    main.c

    modify.c

    delete.c

    search.c

    input_output.c

    aver_sort.c

    • 本系统代码总行数:250

    4.调试结果展示

    输入

    显示

    修改成绩

    根据学号查询学生信息

    删除学生信息

    5.调试碰到问题及解决办法

    • 1.在创建工程的过程中由于工程建立的不当已经过多的c文件互相影响导致工程无法运行。
      解决方法:询求老师帮助,建立了基本的工程。
    • 2.新建信息一开始i=0,导致创建新信息之后之前的信息就会消失。
      解决方法:将i=0改为i=count,i<count+n。
    • 3.排序功能和按学号排序还未完善。
    • 4.对于一些非法输入还未健全判断方法,以及系统的交互还不够友好,操作失误就要重新输入。

    三、截图本周题目集的PTA最后排名。

    四、阅读代码

    写一个计算斐波那契数列的通项f(n),已知f1=1,f2=1,以后每项都是前两项的和。

    template <typename T>  
    T f(T n)  //递归函数  
    {  
        if (n == 1 || n == 2)  
        {  
            return 1;  
        }  
        else  
        {  
            return f(n - 1) + f(n - 2);  
        }  
    }  
    int _tmain(int argc, _TCHAR* argv[])  
    {  
        int n;  
        cout << "Please input n:" << endl;  
        cin >> n;  
        cout << "n! = " << f(n) << endl;  
      
        return 0;  
    }  
    

    本题通过递归函数计算斐波那契数列,有了递归的算法, 用程序实现实在再简单不过了,很直观的表示出了各个通项之间的关系,不仅简洁而且不会出错。如果使用正常的函数写法会使代码量增加。递归虽然较为难以理解,但很多东西用递归却更加简单,这就是递归的重要之处。

    五、本周学习总结

    1.介绍本周学习内容

    • 1.学会了基本的函数嵌套调用,懂得如何模块化使得代码可读性增强,实现复杂问题结构化程序。
    • 2.递归函数中递归出口和递归式子是要点,掌握式子的关系即可不要深究过程,不然会混乱。
    • 3.宏定义格式 #define 宏名 宏定义字符串
      宏还能实现简单的函数功能。宏替换不做计算,只做替换。
    • 4.一个程序中只允有一个主模块,为了能调用写在其他文件模块中的函数,可以使用文件包含。
      全局变量只能在某个模块中定义一次,如果其他模块需要则需要通过外部变量声明 etern 变量名表。

    2.学习体会

    • 本周的学习内容很多,也相对的复杂和零碎,在学习上有一定的困难,特别是递归函数和工程,无法快速的理解。c语言的一些基础概念和知识容易忽略或者混淆,接下来还是会认真的阅读书本和相关的代码,梳理其中的内容。
  • 相关阅读:
    Activiti7工作流+SpringBoot
    他为何放弃580万年薪 拿月薪500元跟马云创业(眼光毒辣,半年的机会损失不算大,大不了再干会本行)
    周鸿祎在360新员工入职培训上的讲话(他们都是太聪明,把自己混失败了。大家一定要记住,混日子就是在糜费自己的时间。假设你不喜欢360,你一定要尽快换,尽快找到自己喜欢的事情)
    Apache多虚拟主机多版本PHP(5.3+5.6+N)共存运行配置全过程
    估值800亿的小米,宣布正式进军欧洲市场
    英特尔投资:7200万美元投资12家创新公司,包括3家中国公司(www.intelcapital.com)
    应用监控Metrics
    六大原则理
    PostgreSQL
    CAP原理和BASE思想
  • 原文地址:https://www.cnblogs.com/oracler0103/p/8157495.html
Copyright © 2020-2023  润新知