C语言博客作业--函数嵌套调用
一、实验作业
1 PTA题目:6-5 递归实现顺序输出整数
1.1 设计思路
1.2 代码截图
1.3 调试问题
- 提交了是部分正确,没有全对。有一个输出0的测试点点没有对,因为原先递归出口是if(n0)return 0;这样的话输入0 就没有输出,改成if(n0)printf("%d",n);这样就会在刚开始不是0的情况下,多输出一个0,后来看了一下课堂派上面的题目,就改对了。
2 学生成绩管理系统
2.1 画函数模块图,简要介绍函数功能。
2.2 截图展示你的工程文件
2.3 函数代码部分截图
- 头文件
- 主函数
-添加学生信息
- 修改学生成绩信息
- 查询某个学生信息
- 删除学生信息
- 显示全部学生信息
- 对总分排序
- 对平均分排序
本系统代码总行数:291
1.2.4 调试结果展示
添加信息展示
显示全部学生信息
删除学生信息
查询学生信息
退出
修改学生成绩信息
1.2.5 调试碰到问题及解决办法。
- 做这个工程,我的第一个大问题就是传参,传参的时候真的是传得乱七八糟的,不知道怎么修改就乱改,改了很久很久,是后来参考了别人博客的头文件,才懂得的。
- 在显示成绩的时候,输出都是0.00,一直都感觉是对的不知道为什么输出不对,我检查了定义都是浮点型的,输出都是保留两位小数的,结果在检查了n遍之后发现输入错了,这么基本的错误啊。。改成%f就对了
- 还有就是改掉了%d之后,总分和平均值就出现错误,我就又看了一会程序,看一下下标 i 的变化,发现计算总分和平均分的时候出了问题,把 i++放在下面就正确了
- 其他还有一些小问题,改一改也就对了。
二、截图本周题目集的PTA最后排名
三、阅读代码
- 这个递归的代码,一次自身调用再调用了两次自身函数,虽然耗时费空间,但是可以很直观得看出了兔子繁衍的规律,易于读者理解题意,且代码简洁,是递归这一块内容值得学习的。
四、本周学习总结
1.介绍本周学习内容
-
宏的用途
(1)符号常量,如PI,数组大小定义,已增加程序的灵活性
(2)简单的函数功能实现,如#define Max(a,b) a>b?a:b
(3)当程序中需要多次书写一些相同内容时,相当于全部变量的用途,可将其简写成宏。
宏定义中括号要十分注意!任何算式都要一级一级拆开来写,不能想当然加上括号!对变量加上括号,可提高替换后的运算优先级,有效避免宏替换带来的副作用,保证宏替代的正确性 -
文件包含
文件包含格式:#include<需包含的文件名>
或#include"需包含的文件名"
常用标准头文件
ctype.h 字符处理
math.h 与数学处理函数有关的说明定义
stdio.h 输入输出函数中使用的有关说明和定义
string.h 字符串函数的有关说明和定义
stddef.h 定义某些常用内容
stdlib.h 杂项说明
time.h 支持系统时间函数
2.学习体会
- 工程作业刚开始的时候我是写了一个框架(头文件,主函数和选项的),觉得其他的平常都有写,排序删除什么的都还会,就是传参有点儿麻烦仔细想想就好,但是认真开始写传参定义这一方面却修改了很久!各种各样的错误,最后还是参考了其他博客正确的传参才理解并且改正。我认为自己这方面还是要加紧练习一下,是真的挺薄弱的。
- 链表比较不会,这个真的是一看题全脸懵的那种。。虽然上课听得懂,看也还行,一做题就原形毕露了,真的还是都不会啊。链表这块还是得自己多动手多动手多动手,然后,不要一直看着书写,书上有一个很大的例题,希望我自己能把它读透。