在使用“do .. while”时“while”后面应该加上“;”,源程序中缺少“;”经改正,继续进行编译:
程序无错误運行程序,输入样例值1:
发现与应有的结果不相符仔细检查程序发现:flag应该为double类型的,while后面的条件应为“fabs(item) > eps”如图:
输入样例,结果和答案一致
①语呴while(1)表示的是无限循环,-该循环想要停止时只要在判断条件后面加上“break;”即可在达到此条件后结束循环;
②for(;;)语句表示的有限的循环,往往会有一个固定的N值作为它的最大限制条件for语句中的判断语句不可以省略,其他两个语句可在扩号内省略
例题:循环结构(1)求奇数分之一序列前N项和(计算序列 1 + 1/3 + 1/5 + ... 的前N项之和)
对于该循環的编写应该使用“for”循环,“for”循环用于循环次数已知的循环程序编写而且改程序比较简单使用“for”更加合适。
②循环次数未知但循环条件在进入循环时明确:
例题:循环结构(2) 猜数字游戏,该循环体可能一次都不执行所以应该使用while语句,符合whlie语句可能一次也不執行的特点
循环结构(2)求给定精度的简单交错序列部分和,该循环体至少执行一次所以选用“do ..whlie”更合适。
③循环次数未知且循环條件在进入循环时未知,需要在循环体中明确
例题:循环结构(2)韩信点兵由于条件无法再循环体外给出所以应该使用无限循环whlie(1)编寫合适。
我认为用“do..while”合适因为此程序至少应执行一次。
造成结果不相同的原因:程序一中为(if(n % 2 == 0)break; )break为終止程序,所以当读到2时已经可以被2整除此时程序已经结束,则s=1;程序二中为(if(n % 2 == 0) continue; )continue表示的是当读到被2整除的数时不再执行下面的语句,回到循环开头继续循环则s=25。
该题用无限循环编写需注意break该放置的位置
这个题的信息量可以说是见过最大的一次,读题时只要遗漏一点就可能导致多出编写错误对于这种情况比较复杂的题目,一定要好好顺一下思路否則会出现多次编写依然错误的情况。
都一次编写时忽略了可以为0的條件属于读题不细致。
对王映丹同学博客园作业的评价(
这位同学将改错題中错误所在处的截图显示出来使错误更加的详细,而且在实验总结的时候描述的很清晰
对蕊薏同学博客园作业的评价(
这位同学在描写三种循环的不同之处时运用了具体实例,还附有程序图使人更加容易明白三者的区别。
对DiRt同学博客园作业的评价(
该同学的插图给囚看上去并不是很整齐建议程序图方面可以用Markdown本身的格式。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。