C语言I博客作业09

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业09
我在这个课程的目标是 掌握C语言
这个作业在那个具体方面帮助我实现目标 对for语句的镶嵌循环的练习
参考文献 《C语言程序设计(第三版)》《算法笔记》

1.PTA实验作业

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数据处理

数据表达:本题用了五个整型变量,其中i,j,k用于执行循环,n表示输入的零钱数值,count用来存放硬币总数量
数据处理:
伪代码

Inout (n);
对count进行初始化
使用3个for的镶嵌循环列出全部的换发,
用if条件语句筛选出符合条件的数,
计算符合条件的数量count,
Output (count 以及各硬币数量和硬币数量的总和)
end。
1.1.2实验代码截图

1.1.3 造测试数据

由于数据量大,不好以表格形式呈现,这里用的运行截图呈现。


1.1.4 PTA提交列表及说明

提交列表说明:

  • 1.格式错误:输出时每一项后面都有空格,没打。
1.2 找完数

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

输入格式:
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。

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

输入样例:

2 30

输出样例:

6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
1.2.1 数据处理

数据表达:本题用了七个整型变量n,m,sum,count,i,j,k,其中i,j,k用来实行循环语句,count用来计算输入范围内完数的数量,n,m用来表示输入数的范围,sum用来表示完数的因子。
数据处理:
伪代码

Inout (n,m);
对count进行初始化
使用for的循环列出m到n范围间的全部数
对sum进行初始化
再使用for的循环去寻找完数
用if条件语句筛选出符合条件的完数,
Output(完数以及各因子)
计算n到m之间完数的数量count,
Output (count)
if count=0,
则只输出Output None.
end。
1.2.2 实验代码截图


1.2.3 造测试数据
输入数据 输出数据 说明
2 30 6 = 1 + 2 + 3,28 = 1 + 2 + 4 + 7 + 14 题目的测试样例
2 20 6 = 1 + 2 + 3 随机数
2 10 6 = 1 + 2 + 3 随机数
1.2.4 PTA提交列表及说明

提交列表说明:
1.部分正确:在第一个for循环语句取值时少打了一个=,导致pta上测试时部分正确,上面显示了边界是完数时不正确,因此一下就找到了错误的地方,这件事也告诉了我要多去看pta测试点错误的地方去找哪里错了。

2.代码互评

同学代码截图:跟奥巴马一起画方块

自己代码截图:跟奥巴马一起画方块

同学代码截图:打印九九口诀表

自己代码截图:打印九九口诀表

  • 当我看到这位软件班同学的代码,我这次代码互评我只想讲下她的代码中的方法。
    1.在跟奥巴马一起画方块中,并没有像我一样对输入的数是否为奇数进行判断后是奇数加一行,而是在for循环的过程中巧妙地用了小数for(i=0; i<n/2.0; i++),下面我用举例来说明:当输入n为10时,应执行5次循环,i=0,1,2,3,4,刚好5次,当输入n为11时,应执行6次循环,这时i<5.5;i=0,1,2,3,4,5,刚好6次循环,并不需要想我那样判断是否为奇数后加一行。
    2.在打印九九口诀表中,需要等号右边数字占4位并左对齐,我所用的方法是控制空格数量,判断当右边的数是1到9时再多输出一个空格,而这位同学用了%-4d来表示,我刚看到时不明白这是什么意思且为什么会对,然后我就去百度查找,知道了%4d是数字占4位,而%-4d是数字占4位且向左对齐,不足4位用空格补齐,这是一种很好的表示方法,可以帮助我们剩下很多事和时间。
    3.总之,我在这位同学的代码中学到了很多东西,并且,我更希望我们计科班里能多出现这样的同学。

3.学习总结

3.1 学习进度条
周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
7/7-7/13 10 小时 235 循环语句for的使用以及格式
8/14-8/20 8小时 197 定义全局变量
9/21-9/27 17小时 537 函数的调用
10/28-10/3 16小时 411 数据类型的回顾
11/4-11/10 24小时 1089 数组以及一些算法
12/11-12/17 8小时 453 结构体
13/18-13/24 19小时 1373 for循环的镶嵌
3.2 累积代码行和博客字数

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

3.3.2 学习体会

本周看到代码互评中的这位同学写的代码,发现自己学的越多,一些简单的方法都忘了,并且在许多小的知识点还不知道,因此我还需要更加努力的学习和多去思考,争取早日掌握C语言后去学习其他语言。

posted @ 2019-11-21 21:40  李定鸿  阅读(223)  评论(0编辑  收藏  举报