博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言博客作业--嵌套循环
阅读量:5011 次
发布时间:2019-06-12

本文共 1925 字,大约阅读时间需要 6 分钟。

一、PTA实验作业


题目1:7-4 换硬币

2 .设计思路

  • 第一步:定义3个整型变量i,j,k用于循环,定义3个整型变量x,count,total分别用于储存零钱数额,换法个数,硬币数量;
  • 第二步:输入x,判断3个循环条件,是否同时满足条件x=i+2j+5k;
  • 第三步:如果满足,计算硬币总数,输入结果,count加1,并重复步骤2;
  • 第四步:如果不满足,重复步骤2,直至循环结束。
  • 第五步:输出count数量;

3.本题调试过程碰到问题及解决办法

问题:pta上总是显示部分正确。

解决方法:1231958-20171110193000981-1264893091.png
输入13,结果正确;
1231958-20171110193054263-1459702592.png
输入19,则没有从大到小排序。
1231958-20171110193200794-866527477.png
调试代码,发现循环时从主循环i(一分硬币)开始,由最小值1慢慢循环,直至结果最大,体现不出从大到小排序。与题目要求输出k(5分硬币)的最大值也不相符;所以调整循环位置,k变为主循环,i为嵌套循环。并且k,j,i从最大值开始循环,直至结果最小。通过下图改变循环主次,循环方向,得出正确答案。
1231958-20171110193836309-236264455.png


4.本题PTA提交列表

1231958-20171110194034731-1126303738.png



题目2:

2 .设计思路

1231958-20171110202059450-737822219.png

1231958-20171110201942169-91828133.png

3.本题调试过程碰到问题及解决办法

问题1:repeat=1时结果正确,但是repeat=2时,不能进入循环。1231958-20171110205003638-2046778294.png

如图,i=1,但是并没有执行循环,反而程序结束。
解决方法:return 0;在循环内,所以执行return时,程序结束。
问题2:在dev上答案都是正确,但是pta结果错误,开始调试
解决方法:
1231958-20171110205959934-2078905347.png 当i=1时,答案无误,但是max=91,min=85,而不是一开始的max=0,min=100,造成结果错误。
所以把max=0,min=100放在主循环内,当i++时,重新对max,min赋值!

4.本题PTA提交列表

1231958-20171110210223294-357548432.png


题目3:7-8 餐饮服务质量调查打分

2 .设计思路

1231958-20171111181319278-1507944643.png

3.本题调试过程碰到问题及解决办法

问题:不知道怎么输出*,发现自己只能输出1:,而没有'星号',且不知道如何使'星号'叠加

解决方法:利用switch语句并定义一个变量储存grade个数,当grade等于相应分数,则叠加,再利用循环嵌套输出'星号'。

4.本题PTA提交列表

1231958-20171111182129763-754453076.png

二、截图本周题目集的PTA最后排名

1231958-20171111182152434-1361225305.png

三、同学代码结对互评

1.互评同学名称

李梦冰

2.我的代码、互评同学代码截图

  • 我的代码

    1231958-20171111182608263-814120905.png

  • 梦冰的代码

    1231958-20171111182645653-1688336558.png

分析梦冰的好与坏

不好:梦冰的代码没有体现题目的原意,题目是说:“按从小到大的顺序输出所有不超过2n−1的梅森数,每行一个。如果完全没有,则输出“None”。”。说明要循环一个周期后,完全没有的情况下输出none,而她是n=1,输出none,虽然结果正确,但是取巧了。没有设置一个变量来记录出现素数的情况。

好:梦冰的代码每一行都有注释,看了她的代码,我很容易看出了代码代表的意义。清晰明了,这样的代码即使出现错误,也容易调试找出错误。对于一个打代码的人,特别理解给代码注释的痛苦,梦冰这种难能可贵的精神值得每个人学习!

对比

我:我的代码从n=2开始,没有考虑1的情况,不严谨。而且没有注释,自己看自己的代码都需要时间来判断代码意义,还有定义变量很随意。

梦冰:代码很严谨,详情参照上述好与坏。

三、本周学习总结

1.你学会了什么?

学会了如何使用嵌套循环解决问题,学会了利用流程图代替语言说明设计思路。初步学会了利用伪代码解决难题,这样比起一开始没有思路而盲目打代码,情况好多了。

实参:主调函数的参数,可以为常量,变量,表达式。
形参:调用函数的参数,必须为变量。
函数通过将实参的值单向复制给形参,而且定义形参的值不会影响实参的值单向复制给形参。
定义自定义函数时,需要函数声明,定义,调用,结果返回。

2.本周的内容你还不会什么?

不会函数题目,因为才开始接触,不熟悉,多做题就好多了。

3.你碰到什么困难,打算如何解决?

终于会利用调试找出问题,但是有一些问题并不是利用调试能够找不出的,这个就很烦。看见同学莫名其妙改动一些代码,让代码变正确,而自己却不懂这些改动的意义,这就很无力。

不过我知道他们此刻的正确是通过无数遍尝试造就的,所以自己想要进步,多练必不可少。

小结

感觉自己这一周进步比较大,很多代码错误都是通过自己调试找出的,而不是一味问同学。其次,写设计思路再也不痛苦了,因为流程图真的是一个好东西。通过流程图可以把很多思路清晰简单的表达出来,而过去写思路用语言表达太过于空洞。尽管一开始写流程图效率确实很低,但是进步的空间也是比较大的。最后,发现以前学的东西真的要会用,这次嵌套作业,我用了很多以前的分支知识,学以致用的感觉真的很爽。

转载于:https://www.cnblogs.com/yfrnb/p/7815500.html

你可能感兴趣的文章
归并排序法
查看>>
【剑指offer】面试题26:复杂链表的复制
查看>>
spark开发生成EXE
查看>>
Vue 全家桶介绍
查看>>
WPF Bitmap转Imagesource
查看>>
Java compiler level does not match the version of the installed Java project facet.解决方法
查看>>
笔记_小结
查看>>
Linux lsof命令 umount U盘
查看>>
自定义Font
查看>>
linux svn 服务端搭建
查看>>
maven用途、核心概念、用法、常用参数和命令、扩展
查看>>
linux时间同步ntp服务的安装与配置
查看>>
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法...
查看>>
网络编程-socket并发-粘包问题
查看>>
python 中安装pandas
查看>>
Hibernate 的<generator class="native"></generator>的不同属性含义
查看>>
linux修改root账户的用户名所得的教训
查看>>
【LeetCode】Flatten Binary Tree to Linked List
查看>>
读后感-浮生六纪
查看>>
执行指定路径的程序文件
查看>>