循环
一、题目1:7-1
1.本题PTA提交列表。
2.设计思路:本题采用循环结构。首先输入一个数字N,给i赋初值1,循环条件是i<=N,当i<=N时,将分子和分母分开表示,i为分子,乘上1.0是因为题目要求输出的s保留三位小数;分母为2*i-1;b是分子除分母得到的数字;flag=-flag是为了变换符号。前N项和s为每次循环的b相加起来;当i>N时,跳出循环,并输出s。
3.代码截图。
4. 本题调试过程碰到问题及PTA提交列表情况说明。
部分正确是因为在循环嵌套里多了一个i++,这会导致循环出现重复,即s还没加上b 时i已经加1了,导致结果错误。
题目2:7-12
1.本题PTA提交列表。
2.设计思路:首先输入一个分数。先考虑分子小于分母的情况,定义一个i,赋初始值1,当i<=分子时,执行循环。循环过程中,如果有一个i可以同时被分子和分母整除,令c=分子除以i得到的数,d=分母除以i得到的数,跳出循环时,输出约分后的分数。当分子大于分母时,方法相同。
3.代码截图。
4. 本题调试过程碰到问题及PTA提交列表情况说明。
这题未完全正确是因为判断完分子小于分母的情况下,已经有输出了,而开始判断分子大于等于分母时又多了一行语句令其输出,所以导致错误。
题目3:7-32
1.本题PTA提交列表
2.设计思路:本题首先定义一个初值为1的i,当i<=100时进入循环,每个i 相加得到s,s值不被覆盖,每次都与新的i 相加。当i=101,跳出循环。输出叠加结果s。
3.代码截图
4. 本题调试过程碰到问题及PTA提交列表情况说明。
本题错误是因为首先循环条件出错,还有i++放的位置也不对,应该先叠加和在让i++;输出也放错了位置,苯二梯只有一个输出值,应在跳出循环以后再输出,不能放在循环内部。
二、代码互评
1.互评同学名字(朱佳楠)
2. ①同学代码。②我的代码。(7-15)
3.代码异同
朱佳楠同学的代码更为简洁,能熟练运用break和continue等重要知识点,但是忽略了一个重要的地方,那就是n=1时的特殊情况。这就导致了她本题不能拿到全部的分数。而我使用最传统的方法,将所有可能情况一一罗列,虽然答案正确,但却比较费时。
三、截图本周题目集的PTA最后排名。
四、本周学习总结。
1.你学会了什么?
① 我学会了for,while ,do-while 循环体的差异。for语句通常用在有固定循环条件时,while 语句通常用在满足某条件则循环的条件下。do-while 是先循环再判断,所以相同条件下,使用do-while 会比用while 多一次循环。
② break 和continue 的区别。break结束循环;continue 结束本次循环.而break之后不会再循环;continue 结束本次循环后,进入下一次循环。
③ 学会使用循环嵌套解决题目。
2.本周的内容,你还不会什么?
①循环嵌套使用不熟练,容易忽略变量在循环体中的变化。
②PTA:7-8,7-9,7-10,7-11,7-24,7-28,7-31,7-34,7-3,7-38,7-39。
3.循环结构考试总结。
①7-6:忽略了M和N相等且同为素数的情况,忽略了取最大边界值的特殊情况。
7-10,7-24:未能正确整理好思路,导致逻辑混乱。
②我对于考试的结果不满意,做题时应先整理好思路,这样才不会导致简单题也一直出错,同时要多加练习。
③ 我觉得应该在保证简单题全部会做且正确的基础上多研究中等难度题,当没有思路时,可以用流程图找逻辑关系,便于理解题目。也要学会和同学多交流,探寻不同的解决方法。最重要的还是要自己多思考多分析多练习。