• C语言I博客作业09


    这个作业属于哪个课程 c语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/10029
    我在这个课程的目标是 了解、运用并学会自己编辑c语言
    这个作业在哪个具体方面帮助我实现目标 能帮助我更了解c语言,练习c语言
    参考文献 《c语言程序设计》《提问的智慧》

    1.PTA实验作业

    1.1 换硬币

    将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

    1.1.1数据处理

    数据表达

    运用了六个整型变量,money,fen1,fen2,fen5,total,i;分别表示输入零钱,一分钱的数量,二分钱的数量,五分钱的数量,硬币总数,以及转换方法的数量。
    

    数据处理

    定义money,fen1,fen2,fen5,total,i=0; //定义零钱,一分钱,二分钱,五分钱,总数,转换方法
    输入money;
    fen5←money/5;                      //最大五分钱数量
    for fen5 to 0
       fen2←(money-5*fen5)/2;          //在兑换一定五分钱数后,最大二分钱数量
       for fen2 to 0      
          fen1←money-fen5*5-fen2*2;    //一分钱数量
          if fen1>0
          输出fen5,fen2,fen1,total;
          i++;                       //累加方法数
    输出count;
    

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    1 count=0 钱数少于兑换最少硬币总和
    8 最少硬币总和
    13 样例

    1.1.4 PTA提交列表及说明

    提交列表说明:

    **编译错误**:这道题是先在Dev上运行后,再复制过来的,但还是出现了编译错误,主要是后来我改了一下格式,然后不小心删了一个逗号。
    

    1.2找完数

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

    1.2.1数据处理

    数据表达

    定义了六个整型变量m,n,i,sum,w,a;分别表示输入最大数,最小数,累加数,完数。
    

    数据处理

    定义m,n,i,sum,w,a;     //定义最大数,最小数,累加数,完数
    输入m,n;
    a←0;
    for m←w to n;          //累加m直到n
    sum←1;                 //给sum赋值
       for i←2 to w/2      //累加i,得到所有因子的和
          if(w%i←0){     //求出因子
              sum+=1;
    }
       if(sum←w){          //得出满足条件的完数
           a←1;            //给a赋值为1,使之不进行a为0的条件
           输出w=1;
           for i←2 to w/2     
              if(w%i←0){     //求出完数的各因子
                  输出+i;
              }
           输出换行;
    if(a←0)
       输出None;
    

    1.2.2实验代码截图


    1.2.3 造测试数据

    输入数据 输出数据 说明
    2 3 None 最小范围
    2 6 6=1+2+3 一个完数
    2 28 两个完数

    1.2.4 PTA提交列表及说明

    提交列表说明:

    这题在机房课的时候做过改错题,这里只是改动了一下,做起来还是比较容易,先在Dev上做完再移过来,一遍就过了。
    

    2.代码互评

    同学代码截图

    自己代码截图

    1)两份代码均定义三个整型变量,一个字符,但第一份代码运用了getchar(),获得一个字符。
    2)第二份代码运用了一个if-else结构判断输入数是否奇数,来进行四舍五入,而第二份代码直接加上0.5,使奇数加一。相比而言,我觉得第一份代码确实好一些,代码也简洁很多。
    3)第一份代码先输出,再换行,而第二份代码先换行,再输出,相比而言,第一份代码省了一个if结构,简洁一些。
    

    同学代码截图

    自己代码截图

    1)第二份代码运用了if条件,先换行,而第一份代码先输出再换行。
    2)第二份代码输出时直接使用空格,因此使用if-else结构将一位数和两位数分开,而第一份代码直接使用%-4d直接将所占区间表示出来了。 
    3)总体而言第一份代码简洁,第二份代码复杂。
    

    3.学习总结

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    1/16~1/22 1h 42 输入,输出文件
    2/23~2/29 3h 31 使用int定义变量
    3/7~3/10 6h 93 选择型流程结构,使用double定义变量 输出printf,scanf中%后面使用d或者f或者lf分不清
    4/15~4/18 6h 100 循环流程结构 段错误的原因
    5/22~5/26 8h 104 调用函数,形参和实参 while的循环原理
    6/29~6/22 10h 166 字符,ASCⅡ码集,套嵌if-else分支 for循环边界值
    7/5~7/8 5h 141 switch多分支结构
    8/12~8/15 7h 159 while循环 使用字符解题不怎么会,定义变量所占空间大小
    9/19~9/22 15h 171 break,continue getchar(),变量的位置

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    这次PTA比较容易,唯一难一点的题目和机房改错题相似,做过一次,也不算难了。但由于我太在意时间了,只希望做得快,写的思路有点简单粗暴,导致写得代码看起来异常复杂,代码互评时,别人看着真的有点吓人。
    这次作业主要花时间较长的是写博客,写伪代码。写伪代码要要求所有语言通用,虽然是第二次了,但还是感觉不太会,感受就像第一次写代码懵懵懂懂一样,一边百度一边写,所以写得异常的慢,还感觉不太对。熟能生巧,就像写代码一样,我相信我会写得越来越好!
    伪代码链接

  • 相关阅读:
    站立会议05
    站立会议04
    站立会议03
    站立会议02
    站立会议01
    团队报告
    冲刺第九天
    站立会议第八天
    站立会议第七天
    站立会议第六天
  • 原文地址:https://www.cnblogs.com/xiamudaren1/p/11910845.html
Copyright © 2020-2023  润新知