C语言I博客作业09

这个作业属于那个课程

C语言程序设计II

这个作业要求在哪里

https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10032

我在这个课程的目标是

能够写出一个简单耐玩的游戏

这个作业在那个具体方面帮助我实现目标

学会使用break和continue的使用方法

参考文献

百度

 

 

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数据处理

数据表达:除了输入输出的变量,还有x5,x2,x1,c  4个变量,分别代表5分,2分,1分硬币个数,c代表5分,两分硬币都是1时的1分个数;

数据处理:

start

x5=money/5 ; //5分钱的最大个数
x2=(money-(5*x5))/2;  //2分钱的最大个数
c=money-5-2;

for(x5从x5开始自减;小于0跳出)
{
             x2=减去5分的最大个数;
     for(x2从先开始自减;小于0跳出)
         {
            for(x1从1开始,自增;配合x5,x2组成money总数跳出)
               {
                 if(x5*5+x2*2+x1=money)
                  {
                     printf:
                  }
                } 
         }
}


END

 

1.1.2实验代码截图

 

 

1.1.3 造测试数据

 

 

1.1.4 PTA提交列表及说明

答案错误 由于X1的值出现问题,后加入c变量解决

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 数据处理

数据表达:除了输入输出的值,还定义了 num,k,l element,i 这几个整形变量。其中

num为完数,element为完数因子判断数。l为从2开始的用来输出的完数因子 ,k代表完数个数 。i为用来判断完数的完数因子。

数据处理:

START


for(完数num在定义范围内自增,找出符合的完数)
    {
  for(i从1开始,找出再完数之内,能被整除拟定完数的完数因子)
       {
        if(拟定完数因子能被整除)
          {
            element+=i;//完数因子相加
           }
         }
          if(完数因子相加数=完数)
            {
              printf("%d = 1",num)
               for(从除1的完数因子开始输出完数因子)
                    {
                     ................................
                     完数个数k++;
                     }
             }
            else
               完数因子判断数element归0,重新搜索完数
}
if(k==0)
无完数


END

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据
1 100 6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
100  1000 496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
500 1000 None

1.2.4 PTA提交列表及说明

编译错误 从vs上直接粘贴下来忘记改scanf_s为scanf导致
答案错误 在输出完数l的时候for语句的终止条件设置错误导致

2.代码互评

同学代码:   (奥巴马画方块)

 我的代码:

不同点:
1.这位同学用的是for语句的嵌套来实现方块的排列,而我的方法则是用二维数组的方法排
2.这位同学的方法明显简单很多,但是我也只是在试验二维数组的可行性

3.学习总结

3.1学习进度条

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

 

3.3.2 学习体会

1.这周的学习任然十分紧张,总感觉自己落后了,所以得抓紧时间学习。

2.期末降至,其他科目也需要大量时间去复习。所以必须得抓紧时间学习了。

原文地址:https://www.cnblogs.com/zjw1324399/p/11909330.html