作业头:
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-2 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11627 |
这个作业的目标 | <熟悉break、continue的使用和熟悉使用循环的嵌套解决问题。> |
学号 | <20209135> |
1.PTA作业
排名图片:
1.1
输入整数m,将所有大于1小于整数m的素数存入所指定的数组中(数组最多只存放100个素数,超过则提示“OVERFLOW”),输出各素数——若输入的m≤2,则提示“NO”,程序终止。注:素数(Prime Number),亦称质数,指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
输入格式:
输入一个非0的整数。
输出格式:
素数的输出格式为每个素数5列宽、右对齐、每行显示15个。
输入样例:
100
输出样例:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
53 59 61 67 71 73 79 83 89 97
输入样例:
568
输出样例:
OVERFLOW
输入样例:
1
输出样例:
NO
1.1.1数据处理
数据表达:定义了i,n,m,count四个整形变量;m为输入的数;count用来计算质数个数。
数据处理:对输入数m进行判断,m小于等于2则输出“NO”,否则如果大于541则输出“OVERFLOW”,否则用两个for的循环语句嵌套;再用count计数15个数字换行;
1.1.2实验代码截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
1 | NO | 1既不是素数也不是合数 |
52 | 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 | 在3到52间有14个素数 |
569 | OVERFLOW | 取569时,素数超过了100个 |
1.1.4 PTA提交列表及说明
1.编译错误:大括号太多弄混淆了;
2.部分正确:把质数2排除在外,用i=3开始循环;
3.部分正确:忘记加十五个数一行;添加一个计数变量count来调整。
1.2
在日常生活中,我们常常需要将一些大额的人民币换算成零钱,已知我们有许多面值5元,2元和1元的人民币。
编程实现:输入我们需要兑换的金钱数,然后我们用这些面值5元,2元和1元的人民币来兑换,要求每一种面值都至少有1张,然后输出有多少种兑换方式。
输入格式:
输入在一行中给出待换的零钱数额(大于等于8小于等于100)
输出格式:
每行输出一种兑换方式,按照如下格式输出(并且每一种面值的人民币都是从小到大输出):
five=五元数量,two=两元数量,one=一元数量
输入样例:
在这里给出一组输入。例如:
13
输出样例:
在这里给出相应的输出。例如:
five=1,two=1,one=6
five=1,two=2,one=4
five=1,two=3,one=2
five=2,two=1,one=1
数据处理
数据表达:定义了i,n,M,money,a,b六个整型变量,M作为输入的钱的值;i为换成5元的数,b为换算成2元的数,money为1元的数;
数据处理:对输入的M处理,算出可以换算成多少个5元的,记为n;for循环,money为减去i个5的值;再嵌套一个for对money处理,减去b个2;剩下的money为1元的个数;
实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
13 | five=1,two=1,one=6 five=1,two=2,one=4 five=1,two=3,one=2 five=2,two=1,one=1 | 13元换成5元的2元的和1元的有四种换法 |
8 | five=1,two=1,one=1 | 13元换成5元的2元的和1元的有一种换法 |
5 | 5是小于8的 |
1.2.4 PTA提交列表及说明
段错误:忘记在输入M的时候加上定位符&;
部分正确:把输出的数弄混淆,把i打成n;
格式错误:忘记在输出时,每次循环要换行;
2.代码互评
2.1
同学的代码截图:
自己的代码截图:
1. | 该同学的代码调用了数学函数;而我只用到了主函数 |
---|---|
2. | 该同学定义了6个整形变量;而我定义了4个变量 |
3. | 该同学是在代码中算出第一百个素数;而我是直接运用541来进行编写 |
2.2
同学的代码截图:
自己的代码截图:
1. | 该同学定义了四个整形变量;而我定义了六个整形变量 |
---|---|
2. | 该同学用while循环来进行处理;而我用的是两个for的嵌套处理 |
3. | 该同学用到了goto来打破循环;而我用到的是break打破循环 |
3.学习总结
3.1学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周10.19~1025 | 29小时 | 690 | printf显示,hello world类型的代码 | 无 |
第九周10.2~11.1 | 32小时 | 780 | if,else的使用,计算华氏温度的转化 | 运算规则 |
第十周11.2~11.8 | 33小时 | 780 | for的循环结构的使用,数学函数 | 数学计算 |
第十一周11.9~11.15 | 35小时 | 800 | 定义函数,调用函数 | 无 |
第十二周11.16~11。22 | 37 | 860 | if /else的进一步学习 | 无 |
第十三周11.23~11.28 | 37 | 840 | 分支结构switch的学习 | switch的运用还是不太熟,需要多加练习 |
第十四周11.30~12.5 | 36 | 850 | while和do-while循环语句的运用 | while的循环运用不熟练,时常出现运行超时的问题 |
第十五周·十六周12.6~12.20 | 1660 | 熟悉break、continue的使用和熟悉使用循环的嵌套解决问题 | 循环语句的嵌套不够熟练,对break和continue的学习不够严谨 |
3.2累计代码行和博客字数
3.3学习内容总结和感悟:
3.3.1学习内容总结:
3.3.2 学习体会
1.快期末了,随之而来的就是要考试了,忙忙碌碌等的就是考试来检测自己,看的就是考试中自己的发挥。
2.这些天的学习节奏说快也不快,毕竟没有博客园,pta来烦我们,但是说满也不慢,因为没有C语言作业也有其他的作业,因为要考的不是只有一门C,不想挂科,所以室友和我一起在寝室又过了这么多天。
3.忙在寝室的感觉也不是很差,外面很冷,不是谁都想出去挨冻,我们在寝室学习也还是挺充实的。
4.这次我们有一周没有作业,所以我们都只是复习了一下下。
5.为什么这周又要写C语言作业,哎,很烦的,不喜欢被安排做作业,能不能让自己做点想做的。每次要做这个就要花费好长时间。感觉不是充实,只有累。
6.对于如何跳出多重循环:a.设定一个停止条件;
b.break;
c.goto语句(无条件转移语句,goto语通常与条件语句配合使用,可用来实现条件转移, 构成循环,跳出循环体等功能。但是,在结构化程序设计中一般不推
荐使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。)