C语言I博客作业09

这个作业属于哪个课程 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实验代码截图

C语言I博客作业09_第1张图片

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提交列表及说明

C语言I博客作业09_第2张图片
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实验代码截图

C语言I博客作业09_第3张图片

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.代码互评

同学代码:

C语言I博客作业09_第4张图片

我的代码:

C语言I博客作业09_第5张图片
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累积代码行和博客字数

C语言I博客作业09_第6张图片

3.3学习内容总结和感悟

3.3.1学习内容总结

C语言I博客作业09_第7张图片

3.3.2学习体会

这周学习了break、continue的使用和使用循环的嵌套解决问题,使我对C语言的了解更深了,这周的作业也加强了我对
循环嵌套的理解,我觉得很有效而且好用。我相信以后能够学到更多的知识来充实自己。

你可能感兴趣的:(C语言I博客作业09)