这个作业属于那个课程 | C语言程序设计 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10029 |
我在这个课程的目标是 | 熟悉并掌握好C语言及其它的专业性知识 |
这个作业在那个具体方面帮助我实现目标 | 完成PTA作业,熟悉break、continue的使用,熟悉使用循环的嵌套解决问题 |
参考文献 | 集美大学林丽老师,《C Primer Plus》,作业格式要求,伪代码规范 |
一,PTA实验作业
1,换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
伪代码
Read x //int整型定义x
a←0 //赋值a,b,c,n为0
b←0
c←0
n←0
for a←x/5 ;a>0;a-- //for语句循环,赋值a为x/5,a>0,循环a--,进入下一语句
do for b←x/2;b>0;b-- //for语句循环,赋值b为x/2,b>0,循环b--,进入下一语句
do for c←x/1;c>0;c-- //for语句循环,赋值c为x/1,c>0,循环c--
if 5*a+2*b+1*c←x //如果5*a+2*b+1*c==x
then Print a,b,c,a+b+c //则输出a,b,c,a+b+c
Print n //输出n
1,数据处理
变量 | 变量来源 | 变量类型 |
---|---|---|
x,a,b,c,n | 自定义 | int整型 |
2,造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 | ![]() |
随意选取数据 |
5 | ![]() |
随意选取数据 |
3 | ![]() |
随意选取数据 |
3,PTA提交列表及说明
- 答案正确:采用嵌套结构。整型定义a为五分,b为两分,c为一分,n为换法数,全部赋值为0。a=x/5用零钱数额x除以5取整,得到最高可取整的个数,采用for循环语句,循环a--。在此循环内,继续采用for循环语句,b=x/2,c=x/1同理于上,循环b--,c--。如果5a+2b+1*c==x,输出五分、两分、一分的硬币个数,在循环结构里循环n++。最后输出count = %d 换法数。
2,找完数
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
伪代码
Read m,n,i,j //int整型定义m,n,i,j
s←0
b←0 //赋值s,b为0
for i←m to n //for语句循环,赋值i为m直到n,循环i++
do for j←2 to i/2 //for语句循环,赋值j为2直到i/2,循环j++
do if i%j←0 //if i%j为0,则s=s+j
then s←s+j
if s←i //if s赋值为i,则进行下一语句
then Print %d←1 //输出 %d=1
for j←2 to i/2 //for语句循环,j赋值为2直到i/2,则进行下一语句
do if i%j←0 //if i%j=0,则输出+ %d
print + %d
print \n //转行
if b←0 //if b为0,则输出None
print None
1,数据处理
变量 | 变量来源 | 变量类型 |
---|---|---|
m,n,i,j,s,b | 自定义 | int整型 |
2,造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 56 | ![]() |
随意选取 |
7 9 | ![]() |
随意选取 |
3,PTA提交列表及说明
- 部分正确:输出空格没搞好
- 答案正确:在Dev-C++上经过了多次试验,思路见伪代码
二,代码互评
- 我的较为简单,同学的较为复杂,但都是很好的答法,可以扩展思路
- 同学代码输出时直接使用空格,用if-else结构将一位数和两位数分开,我的直接用%-4d直接将全部都表示出来了。
- 我的采用了for循环的镶嵌结构,同学采用了if语句
- 我的思路是一样,只是各自定义的参数有些许不同,我给count定义为了n,而同学的直接使用了count没有定义其他的参数
- 代码书写规范,简洁,值得继续保持
三,学习总结
1,学习进度条
周/日期 | 这周所花的学习时间 | 代码行 | 学到的知识点 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周 | 8小时 | 28 | visual studio 2019安装 | 没有 |
第二周 | 8小时 | 18 | 温度转换,计算摄氏温度 | 没有 |
第三周 | 三天 | 110 | if-else语句 格式化输入函数scanf() | 使用scanf()的返回值 格式空格 |
第四周 | 三天 | 147 | 循环结构,流程图,数学函数 | 为什么在main()里加入void |
第五周 | 两天 | 75 | 对函数的定义和调用有初步的认识,能模仿编程 | 为什么同样的答案在Dev-C++里是对的而在PTA里的就是错的 |
第六周 | 8小时 | 180 | 熟悉多分支结构、字符型数据类型和逻辑运算符 | 同样的答案在Dev-C++里是对的而在PTA里的就是错的,Visual Studio不会用 |
第七周 | 8小时 | 104 | 熟悉多分支结构switch语句的使用 | 不能流畅的完成PTA |
第八周 | 8小时 | 90 | 熟悉使用while和do-while结构解决问题 | while(1)里面数字代表什么 |
第九周 | 8小时 | 112 | 熟悉break、continue的使用,熟悉使用循环的嵌套解决问题 | 做题的思路 |
2,累计代码行数和博客字数
三,学习内容总结和体会
1,学习内容总结
2,学习体会
感觉写代码就是在考验我的数学。这才PTA完成度自我感觉蛮好的,和同学一起在奶茶店里面写了好久,比在寝室里写作业的专注度要高很多。以后会经常出来和同学一起学习。