这个作业要求在哪里 |
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实验代码截图
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提交列表及说明
* 答案错误:没有对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实验代码截图
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.代码互评
自己代码:
同学代码:
* 自己代码:通过一步步循环将钱的个数逐步递减,再判断是否满足式子x=a+2*b+5*c,如果满足就将其输出。
* 同学代码:先循环变量,再用式子判断变量,再接着循环判断,一直到判断出每个硬币的个数再将其输出。
总结:同学的和我的在判断顺序上不同,但是我的较为容易理解一些
自己代码:
同学代码:
* 同学代码:同学先使用了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 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
在本周的学习中,我接触到了循环嵌套的方法,在听老师讲解的时候觉得不太难,但是到了自己做的时候还是经常遇到很多的问题,比如循环时输出的顺序,结构,还有数据经常出现格式问题。在PTA的完成过程中我遇到了很多问题,解决了一部分,还有一部分正在尝试解决。也学会一些新的东西,也逐渐琢磨出循环嵌套的使用,但是我还不够熟练,很明显的感觉自己不够熟练。不过博客作业中的每次总结中,我都能进一步的理解和思考自己的代码和思路。随着PTA的难度正在增加,我也要更加努力了!!!