C语言I博客作业09

这个作业属于那个课程 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完成度自我感觉蛮好的,和同学一起在奶茶店里面写了好久,比在寝室里写作业的专注度要高很多。以后会经常出来和同学一起学习。

posted @ 2019-11-22 18:22  田园鑫  阅读(161)  评论(0编辑  收藏  举报