C语言I博客作业09

本周作业头

问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-3/homework/10033
我在这个课程的目标是 熟悉break、continue的使用,学习使用循环的嵌套解决问题
这个作业在那个具体方面帮助我实现目标 在PTA上面完成编程作业,百度上查资料
参考文献 《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数据处理

  • 数据表达:使用了整形变量x,i,w,a,b,c,d,count,x表示零钱数额,在循环中i储存五分硬币个数,w储存一分硬币个数,a表示最多五分硬币个数减一,b减去五分剩余的钱,c储存二分硬币个数,d减去五分和二分剩下的钱,储存换法个数。
  • 数据处理:表达式:fen5:%d, fen2:%d, fen1:%d, total:%d\n,i+1,w+1,d+1,i+w+d+3。
  • 伪代码:

    x←x-8 /排除第一种算法/
    a←x/5 /计算余下的钱能换几个五分硬币/
    for(i←a;i>←0;i--) /将a赋值给i,用来储存每次循环的五分硬币个数,并判断是否还有五分硬币/
    b←x-5i /减去五分剩余的钱/
    c←b/2 /
    储存二分硬币个数8/
    for(w←c;w>←0;w--) /将二分硬币个数赋值给w,并判断是否还剩余二分硬币/
    d←x-5i-2w /计算除去二分硬币和五分硬币的/
    输出五分硬币,二分硬币,一分硬币,总硬币个数
    count++;
    end for
    end for
    输出换法个数
    end

1.1.2实验代码截图

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

1.1.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 零钱为13时,共4种换法,8枚硬币
5 count = 0 零钱为5时,没有换法
10 fen5:1, fen2:2, fen1:1, total:4/fen5:1, fen2:1, fen1:3, total:5/count = 2 零钱为10时,共2种换法,5枚硬币
15 fen5:2, fen2:2, fen1:1, total:5/fen5:2, fen2:1, fen1:3, total:6/fen5:1, fen2:4, fen1:2, total:7/fen5:1, fen2:3, fen1:4, total:8/fen5:1, fen2:2, fen1:6, total:9/fen5:1, fen2:1, fen1:8, total:10/count = 6 零钱为15时,共6种换法,10枚硬币

1.1.4 PTA提交列表及说明

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

  • Q1.编译错误:硬币的赋值错误导致编译错误。
  • A1.找到错误之后加了一个for语句。
  • Q2:部分正确:硬币的数量没有依次从大到小的顺序
  • A2:重新调换了一下顺序。

1.2 题目2:所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。

输入格式:
输入在一行中给出2个正整数m和n(1

输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。

输入样例:

2 30

输出样例:

6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14

1.2.1 数据处理

  • 数据表达:使用了m,n,i,sum,j,k,z整形变量,分别表示两个正整数,完数和因子。

1.2.2 实验代码截图

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

1.2.3 造测试数据

输入数据 输出数据 说明
2 30 6 = 1 + 2 + 3/28 = 1 + 2 + 4 + 7 + 14 因子三个,完数28
6 25 6 = 1 + 2 + 3 三个因子,无完数
8 40 28 = 1 + 2 + 4 + 7 + 14 完数为28

1.2.4 PTA提交列表及说明

  • Q1:部分正确:没有逐行输出给定范围内每个完数的因子累加形式的分解式。
  • A1:好好阅读题目输出格式才知道,于是就改了过来。

2.代码互评

同学代码截图

(来自软件三班童英俊同学的代码)
C语言I博客作业09_第4张图片

自己代码截图

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

  • 代码比较
  • 不同点:他使用的整形变量较少,只有四个,而我使用的整形变量较多。
  • 相同点:都使用了表达式:fen5:%d, fen2:%d, fen1:%d, total:%d\n,来求5分、2分和1分硬币的数量。
  • 总的来说他的代码较少,写起来会比较简便,而我的代码较长。

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 四个小时 40行 初步接触编程与c语言,在电脑上显示Hello World 对所有编程的事物都很懵
第二周 十二个小时 65行 了解MinGW-w64安装教程并完成了GCC编译器的安装,并用 MinGW-w64 来编译 C程序 不是很熟练地掌握安装和编译
第三周 十五个小时 100行 练习对表格的使用和PTA里的题目,对编程开始提高速度和准确性 有些难的编程题目是真的很难做动
10.14~10.20 20小时 150行 学习指定次数的循环程序设计,以及power的用法 循环程序的题型很多,有些也比较复杂,不是很容易理解
10.20~10.27 20小时 180行 能模仿编程,认识函数,编辑思维导图 用C语言编写程序生成乘方表与阶乘表没有很掌握好
第十周 32小时 526行 多分支结构、字符型数据类型和逻辑运算符 循环类的题目没有完全掌握
第十一周 40小时 760行 学会用switch语句 对于break语句的一般的三种使用方法没有运会得当
第十二周 42小时 805行 使用while和do-while结构解决问题 对新学习的循环语句没有掌握好
第十三周 35小时 1000行 学习break、continue的使用,学习使用循环的嵌套解决问题 对continue语句的使用还有一些困扰

3.2 累积代码行和博客字数

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

3.3 学习内容总结和感悟

3.3.1 学习内容总结

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

3.3.2 学习体会

  • 1.这周又新学习了两种新的循环语句,对循环结构这个知识点算是更清晰一点啦。
  • 2.对C语言的学习还得下功夫,上课时总喜欢打瞌睡,有些知识根本没听。
  • 3.要养成提前预习的好习惯,只有这样,才能稳稳地跟上老师的节奏。

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