C语言博客作业03--函数
0.展示PTA总分
1.本章学习总结
1.1 学习内容总结
-
函数返回值得类型最好要与函数类型一致。
-
全局变量
- 可用于多个函数之间的数据交流。
-
静态变量
- 在函数内定义一个静态变量,在下一次的函数调用中,该变量的初始值为上一次函数结束时该变量的值。
1.2 本章学习体会及代码量学习体会
1.2.1 学习体会
- 模块化设计
- 在学习完函数后,我们可以将程序模块化,使程序层析分明,主函数简化。
1.2.2 代码累计
- 本次综合作业代码量:339
2.本次作业的函数关系图
3.函数功能及全局变量介绍
3.1 全局变量
3.2.ListMenu()函数
- 展示菜单,提示用户接下来的操作。
3.3 GetChoice()函数
- 在用户选择难度后,通过该函数进入GradeOne()、GradeTwo()、GradeThree()函数,并在用户输入错误的难度后提示。
3.4 QuestionNumber()函数
- 通过该函数提示用户输入想要作答的题数。
3.5 Operator()函数
- 通过该函数随机生成四则运算符。
3.6 GradeOne()函数
- 在该函数内随机生成一年级难度的口算题并判断用户输入的答案是否正确。
3.7 GradeTwo()函数
- 在该函数内随机生成二年级难度的口算题并判断用户输入的答案是否正确。
3.8 GradeThree()函数
- 在该函数内随机生成三年级难度的口算题并判断用户输入的答案是否正确。
3.9 TrueRate()函数
- 通过该函数计算用户答题的正确率。
3.10 Encourage()函数
- 通过该函数随机生成鼓励话语。
4.运行结果截图,测试用例
5.调试碰到问题及解决办法
Q1:计算正确率的函数只能生成1和0两种结果。
A1:我的原代码:
rate = (num-m)/ num;
改进后的代码:
rate = 1.0*(num-m)/ num;
6.大作业总结
- 本次综合作业中碰到的问题是在计算正确率的函数中,函数的返回值只有1和0两种结果,经调试后发现是在计算rate的表达式中出了问题。因为rate是double型的数据,而我用于计算rate的数据都为整型,所以我在表达式中乘了一个1.0,经运行结果正确。这提醒了我,在进行double类型的数据计算的时候一定要注意自己的表达式中是否有浮点型数据。