本章学习总结
1.1思维导图
1.2本章学习体会及代码量学习体会
1.2.1本章学习体会
这几星期学了函数题目变难,尤其是大作业花了我很多时间。总结起来自己开始学会运用函数了,但是书看的比较少,很多概念不是很清晰。
这几星期生病了,身体活力下降,加上电脑烧坏了,学习时间和学习强度都不如以前。希望老师能够少布置一点作业,让我们有更多休息和自学的时间,时间分配方面我一直分配不过来。
不过说实在的,这周函数的pta作业比上周循环结构的作业简单。大作业做得有点幸苦。
1.2.2代码量累计
2.2PTA总分
截图PTA中函数题目集的排名得分
2.2 我的总分:145
3.PTA实验作业(1分)
3.1 PTA题目1
输出两个数的最大公因数。
3.1.1 算法分析
声明函数gcd
Begin
repeat
if xy 则return x
end if
if x>y 则
change:=x
x:=y
y:=change
end if
r:=x-y
if r>y 则 x:=r
else if r<y则
x=y
y=r
else if r<y则
x=y
y=r
else if ry则
return r
end if
end if
end if
end if
if x==y return x
until 1
End
3.1.2 代码截图
3.1.3 测试数据
3.1.4PTA提交列表及说明
Q1:运行超时陷入死循环
A1:考虑不充分,没有一步一步推敲导致结果出错,最后考虑到特殊情况,修改代码。
Q2:面对x大y小的情况时答案错误。
A2:没有想清楚x,y,r的转换关系,导致结果出错,经过调整,得出正确答案
大作业
4.1.函数关系图
4.2.函数功能介绍
1.void print()
用于输出菜单
2.int stage1()
用于给用户出题,用于计算第一位数的一步加减乘除,同时除法的结果保留两位小数。
3.int stage2()
用于给用户出题,计算两位数的二步加减运算。
4.int stage3()
用于给用户出题计算三位数的二步加减运算。
5.void IfRight() 和void Ifwrong()
用于在用户做对题目时输出肯定的话语,在用户做错题目时输出鼓励的话语。
6.void CorrectRate()
用于鉴定用户成绩等级
7.int ScanfNumber(int number1,char note1,int number2,char note2,int number3)
对数据的合法性进行判断,保证数据是合法的。
4.3 运行结果截图
1测试一
2.测试二
4.4 调试碰到问题及解决办法
Q1:输入非法数据时进入死循环。
A1:scanf()后面加一个getchar()吸收系统储存的数据,同时加入循环语句,直到数据输入正确才退出。
Q2:页面不够优美。
A2::加了一些输出用于美化菜单。
Q3:没有清屏。
A3:用了强大的百度解决了问题。
Q4:rand()函数输出的不是真正的随机数。
A4:参照以前做过的习题,用 srand(time(0))函数解决问题。
4.5 大作业总结
1.这次作业是在匆忙之间完成,而且我的电脑烧坏了,只能在图书馆做作业。
2.我的代码过冗余,多很好的算法一开始没有想到,参照别人的代码后才知道自己的不足。
3.我的身体状态差,这次作业本该做的更好的。
4.作业改了很多次,总结起来还是觉得自己功底不够,要多学习。
5.我在这次作业中学到了很多课堂上没有教的知识。