C语言博客作业--嵌套循环
一、PTA实验作业
题目1:7-1 查询水果价格
1. 本题PTA提交列表
2. 设计思路
3.本题调试过程碰到问题及解决办法
- 怎么在输入0时直接跳出循环?
一开始,将输入0的情况直接写在了switch语句中,但是结果虽然跳出,仍然输出了price = 0.00
仔细查看,原来是把输出语句在循环里面,所以不能直接在switch语句中直接加入,而是在经过一个判断,如果code=0,count=6,否则再进入switch语句中。
解决方法:既然已经设置了一个计算输出几次的变量count,不妨让code=0时让count=6,6大于5,直接跳出循环。
题目2:7-7 歌唱比赛评分系统
1. 本题PTA提交列表
2. 设计思路
3.本题调试过程碰到问题及解决办法
- 问题一:将累加放在了第二个输出后面,导致第一个num没有累加到。
调试:
可知第一个数据90没有累加到sum里面
解决方法:
将sum+=num放到第二个输入前面,借助循环加到sum里面,再在外面补充一句加最后的num。 - 问题二:如图
起初结果错误,一直结果错误,但因为最后求average的式子直接写在一起,调试出来只能一下看出average结果错误,其他变量均没错,所以可能是这个式子出错了。
解决方法:average=1.0*(sum-min-max)/(n-2),n未有减2,导致的结果错误。
题目3:7-8 餐饮服务质量调查打分
1. 本题PTA提交列表
2. 设计思路
3.本题调试过程碰到问题及解决办法
- 当count中有等于0时,不能正确的换行,错误代码:
经调试,当count4等于0时不会进入循环,所以不会输出
解决方法:不在循环里面判断是否输出 ,而是在循环结束后换行,绝对没错。
二、同学代码结对互评
1.互评同学名称
- 陈张鑫
2.我的代码、互评同学代码截图(此处截图核心代码就好,不一定截图全部代码,图上指明是谁的代码。)
题目:餐饮服务质量调查打分
-
我的代码
-
同学代码
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
-
不同点1:进入循环的方式不同。
我的代码是递增的方式,repeat到达指定值时不再循环,而且是用for循环写的,较直观;同学的代码是先给定repeat的值,递减的进行,到repeat==0时,不再循环,而且用while循环写的,需要记得在循环里加上repeat--,这里很容易漏掉,造成死循环。我更喜欢我的风格。 -
不同点2:判断分数个数方法不同
我的代码是使用switch语句,同学的代码使用的是if-else-if语句,我的代码较直观,也比较容易书写,他的代码较复杂,所以我更喜欢我的风格。 -
不同点3:输出换行的方式不同
我使用的是通常的scanf语句,而他直接用putchar,这里我认为他比较好,比较省时间,也更容易,所以我更喜欢他的风格。 -
他的代码不足:对一系列score赋了两次初值,其实可以直接放到repeat循环里面,省事省力,而且格式也比较乱,有待提高。
三、截图本周题目集的PTA最后排名。
四、本周学习总结
1.你学会了什么?
-
学会了使用再循环中使用break和continue语句。
break语句是循环到break语句时就直接跳出循环;continue语句是直接结束这轮循环,不执行continue后面循环的内容,开始下一轮循环。 -
通过打印空心菱形的那道题,懂得了打印类似图形的基本思路,那就是要通过大循环中i变量的递增或递减,控制空格或者字母的输出,对嵌套循环的理解加深了。
-
练习了循环的嵌套习题,大部分还是会做的,但是对于某些题目还是要上网查一下思路,理解后自己打一遍代码,在这个过程中,认识到了自己的不足,同时学会了一些新的思路和思考方式。
2.本周的内容,你还不会什么?
本周内容基本上已经学会,接下去就是不断巩固练习。