1.本章学习总结
1.1思维导图
1.2本章学习体会及代码量学习体会
1.2.1 学习体会
本章学习了函数,学习了如何使用自定义函数和编写出自定义函数,若在程序有需要中重复多次使用的方法来解决问题可以使用函数,能减少不少代码量。了解了全局变量和局部变量的不同,在某些情况下使用全局变量可以更好让参数在自定义函数和主函数直接传递。
1.2.2 代码累计
2.PTA总分
2.1截图PTA中函数题目集的排名得分
2.2我的总分
PTA函数题目集总分:145
3.PTA实验作业
3.1 PTA题目1
本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。
3.1.1 算法分析
定义prime函数 //判断是否为质数
for(i=2;i<=p;i++) then
if (p不是质数) return 0 end if
if (p是质数) return 1 end if
end for
定义偶数分解的函数Goldbach
for(i=2;i<=n;i++) then
if(分解的两个数都为质数)
输出两个质数和两个质数之和
end if
end for
3.1.2 代码截图
3.1.3 测试数据
3.1.4 PTA提交列表及说明
Q1:之前程序判读2不是素数
A1:在第一个函数中用if表示p=2时特殊情况返回1,表示2是素数
4.大作业
4.1.函数关系图
4.2函数功能介绍
1.函数1
Choice函数时输入选择题目难度时判断输入的choice的值是否符合题目要求
用户输入的值只能等于1 2 3,若输入不是1 2 3则返回0继续输入
2函数2
Answer2函数是判断用户输入的答是否和正确答案相等,并输出相应的语句,在计算做对做错题目数量上加一。
answer是正确答案yourAnswer是用户输入的答案,若两个数值相等做对的题目数量加一否则做错题目的数量加一
4.3 运行结果截图
4.4调试碰到问题及解决办法
Q1 在输入非法数据是系统不会崩溃,而是会选择继续输入
A2 了解了scanf函数的返回值后,写一个while循环只有当scanf函数返回值为1时才会退出循环
Q2 在输入非法数据后要重新输入正确的数据,但有时候会跳过输入语句,好像没有输入语句scanf一样
A2 因为在输入非法数据后,重新输入的值赋值给的是相同的变量,网上百度后知道在赋值给同一个之前赋值过的变量之前要清空缓冲区(fflush(stdin))
4.5 大作业总结
写大作业跟我们平常写解决数学问题的小程序有很大的差别,首先大作业的代码比较多,编写程序时不能重头一直编到尾,要编完一种功能后就要检查是否有错误,不然等到全部都写完之后再发现程序有错误改起来就比较麻烦了,而且等到全都程序都写完了测试数据时就算输出的结果跟我们想象中的不一样,也很难找出问题的根源在哪。大作业代码比较多,循环语句、分支语句肯定少不了,所以在写程序的时候一定要加上应有的注释,不但可以让读者了解程序的思路,在自己写完之后若出现错误也能更好的检查代码,查找错误出在哪