C语言I博客作业09
| 这个作业属于哪个课程 | 这个作业要求在哪里 | 我在这个课程的目标是 | 这个作业在哪个具体方面帮助我实现目标 | 参考文献 | |
|---|---|---|---|---|---|
| C语言程序设计II | C语言I—2019秋作业09,C语言作业评价标准 | 熟悉并掌握基本的程序语言知识,并拥有独立完成程序编辑的能力 |
|
C语言程序设计(第三版),伪代码的写法,百度百科 |
1.PTA实验作业

1.1 找完数

1.1.1 数据处理
①数据表达:使用了整形变量m,n,i,j,he,count和yishu,其中,m和n作为输入的数据,i和j作为循环变量,he作为各个因数相加之和,count作为计数器,yinshu作为因数;
②数据处理:(伪代码)
1.输入数据m和n
2.使i从m到n开始逐加循环
3.使j在该数字中逐加循环
4.利用整除为0判断j是否为因数,并累加到he上
5.利用累加的he是否等于原数来判断是否为完数
6.判断为完数的输出结果的开头
7.并再次利用循环依次输出因数
8.换行后继续,若没有计数则输出None
1.1.2实验代码截图


1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 2 30 | 6 = 1 + 2 + 3、8 = 1 + 2 + 4 + 7 + 14 | 使用题试数据测试 |
| 400 1000 | 496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 | 使用较大数据测试 |
| 2 1000 | 6 = 1 + 2 + 3、28 = 1 + 2 + 4 + 7 + 14、496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 | 使用全部数据测试 |
| 900 1000 | None | 使用其它数据测试 |
1.1.4 PTA提交列表及说明

提交列表说明:
1.编译错误:for语句中使用了逗号而不是分号;(逗号改成分号解决)
2.编译错误:变量he没有初始定义;(将he赋值为0解决)
3.编译错误:完数的判断符号使用的是等号;(使用“==”来判断后解决)
4.编译错误:for语句中使用了两个m;(更换后面一个为n后解决)
5.编译错误:换行符没有加入引号;(加入引号解决)
6.答案正确:在VS中反复验证测试然后更正,粘贴到PTA中成功提交。
1.2 换硬币

1.2.1 数据处理
①数据表达:使用了整形变量x,a,fen5,fen2,fen1和count;其中,x作为输入的数据;a作为中间变量,fen5,fen2,fen1分别作为各种硬币的数量,count作为计数器;
②数据处理:(伪代码)
1.获取输入的数据x
2.使x减去8,在后面的硬币数再补上
3.从五分硬币的数量开始循环,每次减1,这样可以保证总数量的顺序排列
4.利用中间变量a来计算两分硬币的数量并开始循环
5.利用总数减去五分和两分的得到一分的
6.计数器依次累加
7.换行依次输出结果并输出计数器
1.2.2实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 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 | 使用题试数据测试 |
| 9 | fen5:1, fen2:1, fen1:2, total:4、count = 1 | 使用较小数据测试 |
| 12 | fen5:1, fen2:3, fen1:1, total:5、fen5:1, fen2:2, fen1:3, total:6、fen5:1, fen2:1, fen1:5, total:7、count = 3 | 使用随机数据测试 |
| 999 | 结果过于庞大,结尾为count = 49501,经查询为正确答案 | 使用较大数据测试 |
1.2.4 PTA提交列表及说明

提交列表说明:
1.编译错误:for语句中没有用分号;(加入分号解决)
2.编译错误:赋值运算多加了括号;(去除括号解决)
3.运行超时:使用了错误的方法,是递增的累加,导致无法得出结果;(改正方法,使用递减解决)
4.段错误:这个新的错误完全不是很能理解,多次改正无果,于是整个重新打了一遍,才得以解决,不知道是什么意思;(重新输入解决)
5.答案正确:在VS中反复验证测试然后更正,粘贴到PTA中成功提交。这里的后面的一堆正确,是在不断精简数据,将变量数一个一个减少试试能不能运行,成功的让程序精简了不少。
2.代码互评
2.1同学代码截图①(来自李泽基)

2.1同学代码截图②(来自无名氏)

2.2自己代码截图(使用习题7-3)

2.3比较结果
②使用的计算步骤的不同,有先后区别;
③使用的变量数目的不同,有一部分变量确实可以减少;
③使用的计算方法的不同,对于各个硬币数量的计算不同。
3.学习总结
3.1 学习进度条
| 周数/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 | |
|---|---|---|---|---|---|
| 第三周/10-11 | 约6-7h | 约200-240 | “if”和“else”选择结构语句的基本使用 |
|
|
| 第四周/10-16 | 约6-7h | 约320-360 | “for”循环结构语句的基本使用 |
|
|
| 第五周/10-24 | 约6-7h | 约320-360 | 自定义函数的格式以及应用 |
|
|
| 第六周/10-31 | 约6-7h | 约320-361 | 多分支结构、字符型数据类型和逻辑运算符 |
|
|
| 第七周/11-06 | 约7-8h | 约340-399 | 多分支结构中的Swtich结构的运用以及是否使用break的区别 |
|
|
| 第八周/11-15 | 约6-7h | 约340-399 | 循环结构以及while和do-while结构 |
|
|
| 第九周/11-22 | 约6-7h | 约340-399 | break、continue语句以及循环的嵌套 |
|
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会
光阴似箭,日月如梭,这时间过得有点快。不知不觉的,竟然这学期就快要结课了。先说说这周的学习,依旧是基础的延伸。在基础的循环语句上学习更多的循环中可以使用的语句比如break和continue,以及更深层次的循环的嵌套。依旧是寻寻渐进的过程,能够接受,也能够学习到,更多的问题往往都是在应用上的。
接近考试了,感觉完全没有那种信心十足以及胸有成竹的感觉是怎么回事,多少有些心虚。也不知道自己有没有学习到课程要求中所应该要求掌握的知识,也不知道自己能不能够顺利的完成本次的学习任务。还是投入的时间不够多,没有将全部的心思都放这上面,所以这些也都是意料之中的。按照行业里的十万定律,别说十万个小时了,我这十万行代码估计都够呛。所以下一步或者说,下一阶段的学习的话,需要加大对于这个作为专业课程的投入。权当是为了,让自己,不那么心虚吧。
| “读书破万卷,下笔如有神。” |
————杜甫《奉赠韦左丞丈二十二韵》
浙公网安备 33010602011771号