第4章 循环结构 4.3熟悉break、continue的使用 4.4 熟悉使用循环的嵌套解决问题。
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10030 |
我在这个课程的目标是 | 熟悉使用循环的嵌套解决问题。 |
这个作业在那个具体方面帮助我实现目标 | break,continue在循环结构中的使用,嵌套内外循环 |
参考文献 | C语言程序设计,百度 |
1.PTA实验作业
1.1 题目名1
换硬币 |
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4 fen5:1, fen2:3, fen1:2, total:6 fen5:1, fen2:2, fen1:4, total:7 fen5:1, fen2:1, fen1:6, total:8 count = 4
1.1.1数据处理
数据表达:整型(int)定义变量z,x,y,f,count,total。
数据处理:
开始
z←0,x←0,y←0,f←0,count←0,total←0
输入 x
for z←x/5 to 0 z←z-1
y←(x-z*5)/2
for y>0 y←y-1
f←x-z*5-y*2
if f>0 then
total←z+f+y
输出fen5:%d, fen2:%d, fen1:%d, total:%d
count←count+1
end for
end for
输出count
结束
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
8 | fen5:1, fen2:1, fen1:1, total:3 count = 1 | 最小钱数 |
0 | count = 0 | 小于最小钱数 |
1.1.4 PTA提交列表及说明
- 其实还是有错误的开始对计算2分钱的不是很理解,后想明白先分配5分钱在分配2分钱,利用俩个for循环外层计算5分钱,内层计算2分钱。
1.2 题目名1
找完数 |
1.2.1数据处理
数据表达:整型(int)定义变量n,m,sum,s。
数据处理:
开始
定义变量 整型定义最小n,最大m,和sum,s。
输入 n,m
for i←n to m i←i+1
sum←0
for j←1 to i j←j+1
if i%j==0 then
累加sum←sum+j
end for
if sum==i then
输出 i(i的值) = 1
for j←2 to i j←j+1
if i%j==0 then
输出 + j(j的值)
换行
s←1
end for
if s←0 then
输出None
结束
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
6 6 | 6 = 1 + 2 + 3 | n等于m |
2 4 | None | 无完数 |
2 6 | 6 = 1 + 2 + 3 | 有完数 |
6 2 | None | n大于m |
- 部分正确:开始不理解j可以除以的范围,通过一步步的调试发现,j与i在for循环中的比较出现错误,改正为j
2.代码互评
代码互评 | 代码1 | 代码2 |
---|---|---|
同学代码 | ||
我的代码 | ...... |
- 不同点:我们之间的不同点在于计算奇数时候判断的条件不同,改同学运用取余的方式,一眼看过去不是很好理解。
同学代码2,比我的代码要简洁了一些,代码只使用了一个if-else语句把我的两个for语句概括了。我认为最优的代码是同学代码2。 - 相同点:思路大概一样。
3.学习总结
思维导图
3.1 学习进度条
周 | 这周所花的时间 | 代码行 | 学到的知识点简介 |
---|---|---|---|
一周 | 4个小时 | 50行 | 简单的打印字句 |
二周 | 5个小时 | 85行 | 提问的智慧 |
三周 | 12小时 | 132行 | if-else语句的使用,基本数字的定义,分段函数的计算 |
四周 | 6个小时 | 97行 | for循环语句的使用 |
五周 | 6个小时 | 190行 | 简单函数的定义和调用,while语句,break终止语句 |
六周 | 6个小时 | 260行 | 镶嵌型的for,if-else语句,逻辑运算,字节符的函数表达,switch语句的使用 |
七周 | 6个小时 | 300行 | 简单的数组储存问题,冒泡排序 |
八周 | 6个小时 | 310行 | 简单的结构体 |
九周 | 4个小时 | 300行 | break、continue的使用 |
3.3 学习内容总结和感悟
3.3.1 学习内容总结
1.break
用break语句可以使流程跳出switch语句体,也可以用break语句在循环结构终止本层循环体,从而提前结束本层循环。
2.continue
continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。
3.3.2 学习体会
- 又要感叹为啥子这周又这么快过去了。说真的好快啊。
- 感觉时间分配很重要,做题目我感觉要有思路就是了,多多调试就可以发现新大陆。而对于题目我感觉就是要多想,虽然有些时候我不想多想。但是还是要自己每天都想不会的那个题目,如果很多天后还是不会那就再去看答案。