一 | 二 |
---|---|
这个作业属于哪个课程 | C语言程序设计II |
这个作业要求在哪里 | https://www.cnblogs.com/pengchen511/p/10564067.html |
我在这个课程的目标是 | 能够熟练运用C语言进行编程,并能够自己制作一些简单的软件 |
这个作业在那个具体方面帮助我实现目标 | 熟悉break、continue的使用和使用循环的嵌套解决问题 |
参考文献 | https://edu.cnblogs.com/campus/zswxy/SE2019-1/homework/10031 |
1.PTA实验作业
1.1换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
1.1.1数据处理
数据表达:定义变量n,i,j,m,num,sum;分别表示零钱,五分数量,二分数量,一分数量,硬币总数量,换法个数。
数据处理:
for i←n/5 to 1
for j←n/2 to 1
for m←n/1 to 1
if i5+j2+m*1←n
num←i+j+m
sum++
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
8 | fen5:1, fen2:1, fen1:1, total:3 count = 1 | 最小数 |
9 | fen5:1, fen2:1, fen1:2, total:4 count = 1 | 举例 |
1.1.4 PTA提交列表及说明
1.部分正确:刚开始从最小开始加起,与答案顺序不同。
2.运行超时:改成从最大开始减起时,对i,j,m未分别计算/5,/2,/1。
1.2找完数
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
1.2.1数据处理
数据表达:定义变量:m,n表示取值的范围。i,j用来for循环找因子,sum表示第一次找到的因子的和,用来确定是否为完数。flag表示区间内有无完数。L表示第二次找因子的和。
数据处理:
for i←m to n
sum←0
for j←1 to i/2
if i%j←0
sum←sum+j
if sum←i
flag=1
printf ("%d = ",i)
L=0
for j←1 to i/2
if i%j←0
L=L+j
if L!=i printf("%d + ",j);
else printf("%d\n",j)
1.2.2实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 30 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 | 样例 |
30 50 | None | 举例 |
50 100 | None | 举例 |
1.2.4PTA提交列表及说明
1.部分正确:未将完数为边界考虑在范围里。
2.部分正确:将None忽略,后加上。
2.代码互评
同学代码:
我的代码:
1.都使用了while语句,但我先将第一次上升高度与井深进行比较,再进行下面的过程。而他是直接比较。
3.学习总结
3.1学习进度条
日期 | 这周所花的时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
10.7-10.13 | 7个小时 | 80+ | 编译if-else语句,变量,数据类型不清楚,算术运算与赋值运算 | 无法区分以及中英符号 |
10.14-10.20 | 5个小时 | 90+ | 编译for语句,指定次数的循环程序设计 | 嵌套if-else语句 |
10.21-10.27 | 5个小时 | 140+ | 学习了函数定义 | 函数的区分 |
10.28-11.3 | 6个小时 | 150+ | 学会运用多分支结构、字符型数据类型和逻辑运算符 | 用逻辑运算符表示x为0的几种表达式 |
11.04-11.10 | 5个小时 | 200+ | 熟悉多分支结构switch语句的使用 | 无 |
11.11-11.17 | 6个小时 | 300+ | 熟悉使用while和do-while结构解决问题 | while和do-while结构的一些区别 |
11.18-11.24 | 7个小时 | 100+ | 熟悉break、continue的使用和使用循环的嵌套解决问题 | 无 |
3.2累积代码行和博客字数
3.3学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
这周学习了break、continue的使用和使用循环的嵌套解决问题,使我对C语言的了解更深了,这周的作业也加强了我对
循环嵌套的理解,我觉得很有效而且好用。我相信以后能够学到更多的知识来充实自己。