C语言I博客作业09
问题 | 回答 |
---|---|
这个问题属于哪个课程 | C语言程序设计II |
这个作业要求在哪里 | http://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10030 |
我这个课程的目标是 | 学习使用break语句和continue语句 |
这个课程可以在哪个具体方面帮助我实现目标 | 完成pta题目以及写总结与学习体会 |
参考文献 | C语言程序设计(第3版)、C Prime Plus(第6版)中文版 、百度 |
1.PTA作业
1.1 7-2 换硬币 (20 分)
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
1.1.1 代码截图
1.1.2 提交列表及说明
答案错误:不小心忘记x的含义,而直接将total与x直接比较导致程序错误(将total改为5fen5+2fen2+fen1)
1.1.3 数据处理
数据参数:定义表示输入的钱数的x,fen5,fen2,fen1分别被定义为5分、2分、1分硬币的个数,total为每种换法硬币的总数,count为换法总数
数据处理:输入钱数x;
计算五分硬币数fen5;
计算两分硬币数fen2;
计算一分硬币数fen1;
计算每种方法的硬币总数total,换法总数count;
结束;
1.1.4 造测数据
输入数据 | 输出样例 | 说明 |
---|---|---|
8 | fen5:1,fen2:1,fen1:1,total:3,count:1 | 8分只有一种换法 |
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 | 13分有4种换法 |
1.2 7-3 找完数 (20 分)
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
输入格式:
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。
输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。
1.2.1 数据处理
数据参数:定义了int型变量n,m,i,j,sum,num;n,m为输入数据,
数据表达:输入n,m;
判断1不是完数;
计算因子之和;
若因子之和与输入数相同,则为完数;
输出完数=各位完数之和;
循环计算n,m之间完数数num
结束;
1.2.2 代码截图
1.2.3 提交列表及说明
编译错误:不小心将int main打成了int mian(将mian改为main)
部分正确:没有考虑输入数据为1时的情况(添加一个判断输入数据x是否为1的语句)
1.2.4 造测试数据
输入样例 | 输出样例 | 说明 |
---|---|---|
2 30 | 6=1+2+3 28=1+2+4+7+14 | 2至30之间有完数6和28 |
1 6 | 6=1+2+3 | 1至6之间只有6一个完数 |
2.代码互评
自己代码 | 同学1代码 | 同学2代码 |
---|---|---|
1.第一个同学的代码相对而言较为简单,原因就在于她先计算五分硬币的数目再进入循环,同时她也和我一样先计算硬币总数在输出;
2.第二个同学和我一样的使用了三次循环一步步的解决每种硬币的数目,他是直接输出每种硬币数目的和;
3.第一个同学的代码和我们都不一样的地方是他的代码没有使用if语句来进行判断,在保证程序正确的情况下还减少了代码的行数。
3.学习总结
3.1 学习进度条
周/时间 | 本周所花 | 重要知识点 |
---|---|---|
第一周/09-20 | 4h+ | 简单打印字句 |
第二周/09-28 | 4.5h+ | 《提问的智慧》 |
第三周/10-08 | 9h+ | if-else语句的使用、数字的定义、分数函数的应用 |
第四周/10-15 | 6h+ | for循环语句及其使用 |
第五周/10-22 | 6h+ | 调用简单函数 |
第六周/10-29 | 7h+ | 分支结构、字符型数据的类型及其输入与输出、逻辑运算符 |
第七周/11-05 | 10h+ | switch语句的调用 |
第八周/11-12 | 9h+ | while语句和do-while语句 |
第九周/11-17 | 11h+ | break语句和continue语句 |
3.2 累计代码行与博客字数
3.3 本周学习总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
1.break语句和continue语句和之前学过的循环语句不同,之前的for语句、while语句、do-while语句都是继续循环的语句,而break语句和continue语句却是结束循环;break为直接跳出循环、continue是跳过后面语句继续循环。
2.学了这么久,猛然发现目前所学的C语言语句其实不是很难只是要结合起来使用的话就显得非常的复杂;接下来要注重语句的结合使用了