C语言I博客作业09

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业09
我在这个课程的目标是 熟练运用循环嵌套语句,continue语句
这个作业在那个具体方面帮助我实现目标 在PTA的练习中逐渐熟练语句用法,和对知识的自我总结上
参考文献 集美大学林丽老师、百度文库、C语言程序设计

1.PTA实验作业

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

*数据表达*:conut代表方法数,a代表一分钱,b代表两分钱,c代表三分钱,x为输入的钱数,它们都为整型变量;
*数据处理*:
 int count=0,a,b,c,x;  定义整型变量count,a,b,c,x
    scanf("%d",&x);  输入x(钱数)
    for(c=20;c>=1;c--)  使用for循环语句分别考虑出一分、两分、五分的个数
    {   
        
        for(b=50;b>=1;b--)
        {
            for(a=100;a>=1;a--)
            {
                 if(x==a+2*b+5*c)当a,b,c满足这个式子时便可输出
                {
                    printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",c,b,a,a+b+c);输出a,b,c,a+b+c的个数
                    count++;   方法总数进行累加
                }
            }
        }
    }
    printf("count = %d",count);输出方法数
    return 0;结束

1.1.2实验代码截图

C语言I博客作业09_第1张图片

1.1.3 造测试数据

输入数据 输出数据 说明
8 1 1 1 3;1 取题目的边界值,必须有一个一分,两分,五分;方法数为1种
15 2 2 1 5;2 1 3 6;1 4 2 7;1 3 4 8;1 2 6 9;1 1 8 10;6 取15时有六种方法
10 1 2 1 4;1 1 3 5;2 取10时有2种方法

1.1.4 PTA提交列表及说明

C语言I博客作业09_第2张图片

* 答案错误:没有对count进行赋值,看了错误提示发现的
* 部分正确:等号附近没打空格,看错误提示发现的
* 编译错误:printf语句后没打分号,看错误提示发现的

1.2题目名2

找完数

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

输入格式:
输入在一行中给出2个正整数m和n(1

1.2.1数据处理

*数据表达*:n,m用来组成区间范围,sum为因子的和,a用来判断是否为因子,i用来判断1-N的数,j为每次分解后的因子数,它们均为整型变量
*数据处理*:
 int n,m,sum=0,j,i,a=0;  定义变量
  scanf("%d %d",&m,&n);  输入n,m确定取值范围
  if(1

1.2.2实验代码截图

C语言I博客作业09_第3张图片

1.2.3 造测试数据

输入数据 输出数据 说明
10 50 28=1+2+4+7+14 在10到50的范围内,完数只有28,因子为1,2,4,7,14
10 20 None 在10到20的范围中,没有完数,输出了None
5 50 6=1+2+3;28=1+2+4+7+14 在5到50的范围内完数有6,28;因子分别为1,2,3和1,2,4,7,14

1.2.4 PTA提交列表及说明

*编译错误:printf语句后面忘记打分号了,看了错误提示发现的

2.代码互评

自己代码

C语言I博客作业09_第4张图片

同学代码:

C语言I博客作业09_第5张图片

* 自己代码:通过一步步循环将钱的个数逐步递减,再判断是否满足式子x=a+2*b+5*c,如果满足就将其输出。
* 同学代码:先循环变量,再用式子判断变量,再接着循环判断,一直到判断出每个硬币的个数再将其输出。
总结:同学的和我的在判断顺序上不同,但是我的较为容易理解一些

自己代码

C语言I博客作业09_第6张图片

同学代码:

C语言I博客作业09_第7张图片

* 同学代码:同学先使用了if-else语句对行数分别进行判断再进行计算,接着用for语句循环,得出结果。
* 自己代码:我一开始用了for语句循环,并令i=1;i<1.0*n/2;这样可使n/2有小数时多加一个“一”,就不用分开讨论了,便可得到结果。
总结:同学代码比较详细易懂,我的代码比较简洁

3.学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较困惑的问题
第六周 4天 20 用 MinGW-w64 来编译C程序,学习编程计算温度的转化
第七周 3天 99 学习用if,else等语句编译程序
第八周 2天 75 学习使用循环语句,用for来编译程序
第九周 3天 94 学习各种使用函数eg:fact(i) for循环与while循环的区别
第十周 2天 213 学习使用多种分支结构 对分支结构中for循环有点迷糊不太能理解
第十一周 1天 135 学习使用switch语句
第十二周 1天 96 学习使用while语句
第十三周 1天 83 学习使用循环嵌套,continue语句 循环嵌套的顺序

3.2 累积代码行和博客字数

C语言I博客作业09_第8张图片

3.3 学习内容总结和感悟

3.3.1 学习内容总结

C语言I博客作业09_第9张图片

3.3.2 学习体会

在本周的学习中,我接触到了循环嵌套的方法,在听老师讲解的时候觉得不太难,但是到了自己做的时候还是经常遇到很多的问题,比如循环时输出的顺序,结构,还有数据经常出现格式问题。在PTA的完成过程中我遇到了很多问题,解决了一部分,还有一部分正在尝试解决。也学会一些新的东西,也逐渐琢磨出循环嵌套的使用,但是我还不够熟练,很明显的感觉自己不够熟练。不过博客作业中的每次总结中,我都能进一步的理解和思考自己的代码和思路。随着PTA的难度正在增加,我也要更加努力了!!!
C语言I博客作业09_第10张图片

你可能感兴趣的:(C语言I博客作业09)