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时不会进入循环,所以不会输出\n
    解决方法:不在循环里面判断是否输出\n,而是在循环结束后换行,绝对没错。

二、同学代码结对互评

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.本周的内容,你还不会什么?

本周内容基本上已经学会,接下去就是不断巩固练习。

posted on 2017-11-10 16:53  斯慕  阅读(642)  评论(8编辑  收藏  举报