C博客作业03--函数
2019-11-03 19:52 pluto1214 阅读(208) 评论(0) 编辑 收藏 举报0.展示PTA总分
1.本章学习总结
1.1 学习内容总结
- 函数分为自定义函数和库函数,自定义函数调用时需先声明,而库函数可直接调用如printf()
- 函数声明包括函数类型,函数名和形式参数表和分号,如double cylinder(double r,double h);
- 函数首部不包含分号,且每个形参前都要加上函数类型
- 自定义函数中函数声明中的变量称为形参,而主函数中的变量称为实参
- 实参可以是常量,变量和表达式,而形参只能是变量
- 在不返回结果的函数中,可以用void类型的函数,如输出数字金字塔
- 当需要使函数多结果返回时,需要定义全局变量,如复数的运算中需要返回实部和虚部的值
- 静态局部变量可以保存上一次函数调用时变量的值,因此可以用来计算阶乘问题,如求10!
- 当全局变量与局部变量同名时,局部变量起作用,当局部变量与复合语句中的局部变量同名时,后者起作用
1.2 本章学习体会及代码量学习体会
1.2.1 学习体会
1.函数的调用可以使程序看起来更有条理,也能更方便的解决一些问题,例如阶乘问题和复数的运算,但函数的自定义比较困难,自己往往不知道该怎么自定义函数,这方面还要练习
2.函数内容学习的较快,做函数题时有些困难
1.2.2 代码累计
230行代码
2.综合作业
题目:小学生口算表达式自动生成系统
2.本次作业的函数关系图
3.函数功能及全局变量介绍
3.1.全局变量
全局变量:studentAnswer,在自定义函数中学生输入答案,而在主函数中判断答案是否正确
choice1:记录用户输入的年级
count记录用户的答对题目数量
3.2.ListMenu(studentGrade, questionNumber)函数
生成可供学生选择的菜单
3.3 show_computerAnswer_and_get_input(studentGrade, sum)
获得计算机生成的答案和用户输入的答案,sum传递给i作为题号
4.运行结果截图,测试用例。
一年级:
二年级:
三年级:
5. 调试碰到问题及解决办法
1.问题:每次生成的式子都相同。解决办法:用# include<time.h>和srand(time(NULL))使每次生成的数字不同
2.问题:运算符随机生成。解决办法:定义sign()%4四个数字分别对应4种运算符
3.问题:运算符不能用变量直接放在式子,计算机无法计算。解决办法:让sign=rand()%4直接对应四种运算,用reslut储存正确答案
4.问题:用户输入答案后,怎么跟正确答案比较。解决办法:定义全局变量studentAnswer
5.问题:对于2,3年级的题目,乘除法与加法要求的数字的大小不同。解决办法:判断sign是否为进入乘除法的值,再判断数字大小有无乘除法的要求,有的话重新生成数字
6.大作业总结
- 本次大作业没有达到全部要求,但生成式子和判断对错都有体现
- 函数运用过少,且在使用时不是很熟悉
- 全局变量的使用可以使主函数的变量减少,但不能过多使用
- 出现循环输出菜单时,可以再定义一个变量来控制是否输出菜单