这个作业属于哪个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业09 |
我在这个课程的目标是 | 学会编程 |
这个作业在那个具体方面帮助我实现目标 | 学会了如何去使用嵌套循环,熟悉了break、continue的使用方法,了解了字符型的输入 |
参考文献 | C语言程序设计I,百度 |
1.PTA作业
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数据处理
数据表达:定义整形变量money,count,a,b,c,abc分别代表5分,2分,1分
**数据处理:
输入money
for
{
money/5得到5分钱数
money/2得到2分钱数
money得到1分钱数
count累加
输出钱数和种类数
}
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
9 | 9 fen5:1, fen2:1, fen1:2, total:4 count = 1 | 9分钱有1种换法 |
10 | fen5:1, fen2:2, fen1:1, total:4 fen5:1, fen2:1, fen1:3, total:5 count = 2 | 10分钱有2种换法 |
11 | fen5:1, fen2:2, fen1:2, total:5 fen5:1, fen2:1, fen1:4, total:6 count = 2 | 11分钱有2种换法 |
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 | 12分钱有3种换法 |
1.1.4PTA提交列表及说明
提交列表说明:
1.编译错误:把17行括号后面的“;”忘记打上去了,经过提示打上去了
2.答案错误:没有考虑到count++,完了同学,得到提示就加上去了
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,i,sum,num,运用了for与if结构,嵌套循环。
数据处理:
主函数
输入m,n,
1不是完数
因子数之和
之和相等,既是完数
每一项都有1
之后再加上后面的因子
是用来统计出现的完数个数
输出完数和因子或者None
}
1.2.2实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 70 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 | m,n不相等 |
6 6 | 6 = 1 + 2 + 3 | m,n相等 |
2 9999 | 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 8128 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064 | m,n相差较大 |
34 56 | None | 空集 |
1.2.4PTA提交列表及说明
提交列表说明:
1.自己编译时出现错误:将printf输入为print,把“;”忘记输入,输入时的&完了输入了
2.当时不理解思路,一直错误,设置断点调试,但是还是错误,后来咨询同学做对了
3.自己的答案错误:将continue写为break,一直是答案错误,经过咨询同学与网络,终于改对了
2.代码互评
同学的代码
自己的代码
1.定义不一样的N与n,j,i是一样的
2.柏同学的代码用了嵌套循环,for语句,if-else语句,我和他for语句用法一样。
3.他用的循环输出空格printf(" ")的形式,而我是用“%-4d”来相左对齐,使输出有空格。
同学的代码
自己的代码
1.他定义的是c为钱数,count,x,y,z,total为总计,我的是定义整形变量money,count,a,b,c,abc分别代表5分,2分,1分
2.他在for循环中定义x,y,z,total,我在前面就定义了
3.我用了4个for循环语句
4.计算式表达不一样
3.学习总结
3.1学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第四周 | 8h | 20 | 简单输出 | 无 |
第五周 | 10h | 40 | 学习输入 | 无 |
第六周 | 20h | 60 | 用WinGW-w64来编译C程序 | 文档真的打不开,可能是电脑原因 |
第七周 | 10h | 90 | 关系运算,if-else语句,格式化输入语句scanf() | 有的数学逻辑问题不太懂 |
第八周 | 8.5h | 80 | for的循环语句,指定次数的循环程序设计 | 不太会文字与数学的转换 |
第九周 | 8h | 100 | 函数的调用和定义的初步认识 | 自定义函数不熟悉 |
第十周 | 10h | 170 | 多分支结构、字符型数据类型和逻辑运算符 | 多个数据输出不熟练 |
第十一周 | 11h | 110 | 熟悉多分支结构switch语句的使用 | 逻辑思维能力差 |
第十二周 | 9h | 200 | 熟悉whlie和do-whlie结构 | 字符那方面不熟 |
第十三周 | 8h | 180 | 熟悉嵌套循环,break和continue的用法 | 当运用到真题方面还是会不太会 |
3.2累积代码行和博客字数
3.3学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
1.对于自己不熟练的知识点要多练,加深印象,把遗忘的知识点有必要写在本子上
2.尽量自己思考,找到突破点,对于不会的需要自己去理解
3.尝试理解别人的方法,解读别人的代码
4.时间过得很快,前面学习的也不能落下,有空去回顾一遍
5.做事情要细致,把小错误要一遍遍检查出来