C语言I博客作业09

一.表格

这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 C语言I博客作业09
我在这个课程的目标是 把C语言学精,熟练掌握编程技术,努力找到简单代码的写法
这个作业在哪个具体方面帮助我实现目标 PTA上做题,devc++慢慢掌握调试,加强对于break和continue语句的理解与应用
参考文献 百度百科其他同学作业,《C Primer Plus》,教科书,伪代码的写法

二.本周作业

1.PTA实验作业

1.1 换硬币

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

1.1.1数据处理
  • 数据表达:x,count,fen5,fen2,fen1,total(变量);运算,赋值(怎么来);int(整型)
  • 数据处理:
定义变量x来放待换的零钱数额,fen5来放5分的个数,fen2来放2分的个数,fen1来放1分的个数,total来放3种数额个数的总数,count来放总共有几种换法。total赋值为0;count赋值为0。

输入待换零钱数额
for(fen5=20;fen5>0;fen5--)//进入for嵌套循环
    初始5分个数赋值为20个,5分个数大于0,就减1
    for(fen2=50;fen2>0;fen2--)
        初始初始2分个数赋值为50个,2分个数大于0,就减1
        for(fen1=100;fen1>0;fen1--)
            初始初始1分个数赋值为100个,1分个数大于0,就减1
            if((fen5*5+fen2*2+fen1)==x)
               判断总共的三个数值额是否等于待换零钱数额
               total=fen5+fen2+fen1;
                    count++;//换法加1
               输出5分个数:,2分个数:,:1分个数:,总个数:
          

     下一行输出总换法
      程序结束。     
1.1.2实验代码截图

1.1.3造测试数据
输入数据 输出数据 说明
13 题目样例
6 不符合题目给出条件
20 输入一个整数
1.1.4PTA提交列表及说明

答案错误:忘记在if循环打上"{}",导致无限循环;加上了"{}"(三次答案错误就只是这个错误,检查了3遍才看出来)
格式错误:太久没写PTA,把输入x的值忘记打上&;加上了&

1.2 找完数

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

1.2.1数据处理

数据表达:m,n,a,b,c,i,j(变量);赋值,运算(如何来);int(整型)
数据处理:

定义变量m,n来放正整数,其中m小于n,i来放m-n之间所有数,j来放从1到i的所有数,a来放j累加的值,b来放2到j的所有数,c来放完数的总数,c赋值为0。

输入正整数m,n
for(i=m;i<=n;i++)//进入for嵌套循环
   把m到n所有数提出来
   a赋值为0
   for(j=1;j<i;j++)
       把1到i所有数提出来
      if(i%j==0)
         判断i是否被j整除
         	a+=j;
         if(a==i)
           判断是否是完数
           输出完数=1//为了简单输出先把完数“完数 = 1”打印出来,因为会有1
           for(b=2;b<j;b++)
               提出b到j所有数
               if(i%b==0)
                  判断是否i被b整除
                  输出每个完数的因子累加形式
              输出换行
              计算完数总数

  if(c==0)//判断完数总数是否为0
  输出“没有”
  程序结束
1.2.2实验代码截图

1.1.3造测试数据
输入数据 输出数据 说明
2 30 使用题目样例
2 4 输入没有完数的
2 1000 扩大范围:一位数到三位数
1.1.4PTA提交列表及说明

多种错误:空集答案错误,完数格式错误;把if加上了"{}"//空集错误没找到、、、
部分错误:计算完数的个数变量,忘记赋值;把c赋值=0//空集答案错误改正

2.代码互评

2.1.1 同学代码截图(宁佩同学)

2.1.2自己代码截图

  • 我们的不同之处.
  • 她定义的变量和我有些不一样,我用题目例题给了确定的个数,她用了x,y,省略了定义变量。
  • 她只用了for嵌套结构,我用了for嵌套和if语句
  • 她和我判断的方法不一样,她用的是把5分和2分变成了5个一分和2个一分,再去判断;我是直接先假设他们都有100分,然后再去讨论。
  • 她在最后定义z总钱数,和total总个数,还没计算count,直接输出。我是写的比较完整。
  • 她的代码比较新颖,值得学习

2.2.1同学代码截图(软件四班徐旖同学)

2.2.2自己代码截图


  • 我们的不同之处.
  • 她的代码和我差不多,我写的比较完整,她写的有些简洁。
  • 她多用了if循环判断m与n的范围,这个题目有,可以不用写。
  • 她把一些括号省略了,看起来简单。
  • 我把总数赋值放在for循环里面方便看结构,她放在定义变量那。

3.学习总结

3.1学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
九/19/11-22/11 三天 100 break语句,continue语句用法和区别 不太清楚字符怎么用
八/12/11-15/11 3天 120 while和do-while循环语句用法和概念 暂时没有
七/5/11-8/11 三天 140 switch语句用法 如果x为浮点型,y,z为整型为什么x=y/z答案不对
六/28/10-2/11 3天 130 嵌套if-else语句,格式以及如何应用 不太清楚Devc++怎么调试
五/22/10-25/10 3天 100 用法如何定义函数,格式以及如何应用 暂时没有
四/15/10- 18/10 3天 80 循环结构,流程图,数学函数 数学公式的表达,为什么整数除以变量有一个要用括号括起来还要乘以1.0
三/9/10-13/10 3天 70 if-else,&&用法,字母%用法,数学函数 PTA每次答案错误,都十分难找出来。不得已重打

3.2累计代码行和博客字数

3.3学习内容总结和感悟

3.3.1学习内容总结

3.3.2学习体会
  • 这周学了break语句,continue语句用法与区别。break是直接跳出循环,continue是结束本轮循环执行下一轮。
  • 题目不难,但刚用for嵌套以及break和continue还是有些乏力,不过经过书籍、百度以及做题目,我已经理解了用法并能很好应用。反正在C语言课上听得我如痴如醉
  • Devc++调试可能我还是还是不会,,不清楚到底断点设置在哪里。。。
  • 我觉得可以在实验课的时候,彭老师能用实例再次教一下我们调试,,因为真的很多人不会。。

posted on 2019-11-22 09:23  李政委  阅读(520)  评论(10编辑  收藏  举报

导航