C语言I博客作业08
作业头
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-1 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11530 |
这个作业属于那个课程 | C语言程序设计II |
我在这个课程的目标是 | 灵活循环 |
这个作业在那个具体方面帮助我实现目标 | 熟悉break、continue的使用 |
参考文献 | c语言程序设计(第三版) |
学号 | 20208955 |
二、PTA实验作业(20分/题)
排名图片
1.1
第一题
实验4-1-10 兔子繁衍问题 (15分)
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?
1.1.1
数据处理
数据表达:使用了变量 整型m,n,a,b,s,j; n是输入的对数,m是兔子总数达到N最少需要的月数,s是大兔子和小兔子的总数,j是转换时用的,a小兔子数,b是大兔子数
数据处理: 表达式:a = a + j,s = a + b;流程结构:先循坏累加兔子数,主要规律是前一个月的大兔子对数就是下一个月的小兔子对数,前一个月的大兔子和小兔子对数的和就是下个月大兔子的对数。计算总数。注意用一个变量来转换。
1.1.2
实验代码截图
1.1.3
造测试数据
数据 | 结果 | 说明 |
---|---|---|
1 | 3 | 第一个月的兔子数 |
2 | 3 | 没有新增兔子的可能 |
8 | 6 | 正常值 |
1.1.4
PTA提交列表及说明
说明
多种错误:开始时没用字母来储存转换。
编译错误:没明白问题的规律,大兔子和小兔子弄混。
1.2
第二题
7-1 显示指定范围内的素数 (10分)
输入整数m,将所有大于1小于整数m的素数存入所指定的数组中(数组最多只存放100个素数,超过则提示“OVERFLOW”),输出各素数——若输入的m≤2,则提示“NO”,程序终止。注:素数(Prime Number),亦称质数,指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
1.2.1
数据处理
数据表达:定义了 整型变量 m,i,j,n,ch[100],s;m是输入的数,i是0到输入数之间的数,a积累多少的素数,n转换sqrt(i),ch[100]数组储存数组,s循环储存。
数据处理: 表达式:n=sqrt(i),j%15==0;流程结构:先循环0到输入数字间的数字,再循环判断之间的数字有无为素数,判断素数的个数超过了100,则不符合条件,循环将a个素数储存在ch里面,循环将储存在ch里的a个素数输出。
1.2.2
实验代码截图
1.2.3
造测试数据
数据 | 结果 | 说明 |
---|---|---|
1 | NO | 不符合条件 |
800 | OVERFLOW | 也不符合条件 |
99 | 2 3 5 7 11 13······ 3 79 83 89 97 | 和100是同样的 |
1.2.4
PTA提交列表及说明
说明
部分正确: 第二个和第三个测试点错误,不是直接输出“OVERFLOW”,在前面还是有输出素数,是循环弄错了。
部分正确:后面将循环换了一下,但是还是有很大的错误。
三、代码互评
同学代码
第一位
第二位
自己
第一位
-
用了fiag来标记素数,不是就为0。
-
同样都用了数组。
-
同学进行了两次数组的大小判断,更精准。
第二位
-
这位同学没有用数组,先判断是不是大于100,在输出。
-
得循环两次判断,忽然第一位同学有相似。
3.1学习总结(15分)
3.1 学习进度条(5分
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周 | 6小时 | 262 | 怎么输出内容 | 一些结构的定义 |
第九周 | 8小时 | 670 | 开始输入及套用公式 | 字符的一些定义 |
第十周 | 24小时 | 593 | 数组 | 迷糊流程,字符串,以及对题目的处理 |
第十一周 | 30小时 | 1034 | 函数 | 宏定义,对题目不能很好的反应过来 |
第十二周 | 32小时 | 2431 | EOF等一些基本知识,接触到了c++ | 对于一些函数还不能很好的运用 |
第十三周 | 32小时 | 2742 | switch的灵活运用 | 用函数去表达素数 |
第十四周 | 28小时 | 2324 | which,do while 循环 | 将之前所学的知识结合起来运用,循环会乱 |
第十五周 | 28小时 | 2453 | 熟悉break、continue的使用 | 循环逻辑有点混乱 |
3.2累积代码行和博客字数(5分)
时间 | 博客字数 | 代码行数 |
---|---|---|
第八周 | 585 | 262 |
第九周 | 1031 | 670 |
第十周 | 1289 | 593 |
第十一周 | 1413 | 1034 |
第十二周 | 1664 | 2431 |
第十三周 | 1998 | 2742 |
第十四周 | 2453 | 2324 |
第十五周 | 1902 | 2453 |
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
计划赶不上变化,老是决定做的事情没有去做,上周说多看教材,后面又因等等事情没有去完成,说直接一点:太懒了!就是有拖延症一样,然后这次作业也觉得没有之前这么得心应手了,开始也有难度了,有部分也是因为自己之前学过的没有好好去巩固吧,用的时间就挺多的。然后最后阶段了,也要开始全面复习了,希望能将之前没有弄完,弄好的,全都补回来。
怎么用break跳出多重循环:
-
一般break只能跳出离它最近的for循环。
-
退出多重循环可以使用goto语句,但是可能造成程序不稳定,还是不要使用。
-
可以设置标记,如:flag。
-
使用return 0;也可以跳出。