C语言博客作业02--循环结构

0.展示PTA总分

1.本章学习总结

1.1 学习内容总结

1.循环

在上一个博客作业我介绍了三个循环(while,do-while,for)的结构和之间的异同,这里我就不多赘述,来介绍介绍一些示例。

1.while循环

while循环我就拿一题简单的题:单循环作业中的7-3 正负数的个数:[https://pintia.cn/problem-sets/1176411639231516672/problems/1176412128429969410]
题目如下:

只有当循环条件满足时才能进入循环,我给循环判断的条件是n!=0而n我给它的作用是作为输入的数来判断正负性,由于while循环是先判断,n还没有输入,所以我给n一个初始定义才能让n进入循环。

2.do-while循环

do-while循环最大的特点是最少执行一次,所以对于一些题目最少要进行一次循环,可以优先考虑用do-while循环。
do-while最大要注意的一点是while条件后要加封号。

3.for循环

for循环后有三个条件体,条件1和条件3可以选择性省略,但条件2一定要正确,否则很可能会造成死循环。

4.break语句

break语句常见与switch中,但在循环中也有运用,break在循环中的作用是跳出循环,这在一些判断的题目中可以广泛运用。

continue语句

continue语句也运用于循环中,其作用是不进行continue下面的语句直接进入下一次循环,这在一个范围内找出满足条件的数很有用。

1.2本章学习体会

  • 本章的学习中我感到了一些无力。例如在c04的7-6中,按照常理说我的代码没问题,但提交上去就显示我代码运行超时,但在我当前已有的知识储备中并不能解决我遇到的问题。
  • 这两周我的代码量达到了1000(pta中提交后的,没有计算上修改的)。

2.PTA提交作业

2.1 c03单循环结构7-11 简单计算机

2.1.1伪代码

int digit;用digit来装要计算的数字
char op;用op来装计算符
int sum=0;用sum来装计算结果,先定义sum=0
int flag=1;用flag来判断除数为0的情况

2.1.2代码截图

2.1.3造测试数据

|输入数据|输出数据|说明|
|1+210-10/2=|10|正常数据|
|1+2
10-10/0=|ERROR|除数为0|
|1+2*10-10/2#|ERROR|非法字符|
|1=|1|最小表达式|

2.1.4PTA提交列表及说明


Q123:刚开始我输入放在switch外,导致计算总有出错,几次修改都没有达到效果。
Q4:第一次尝试将输入的语句放在switch内,导致错误更多。
正确:经过调试后提交才得以正确。

2.2 c03氮循环结构7-12 任务06-02-01 于龙遇见日期,又哭了!

2.2.1伪代码

int year;用来存放输入的第一个数字,并在排序后代表年
int month;用来存放输入的第二个数字,并在排序后代表月
int day;用来存放输入的第三个数字,并在排序后代表日
int num;用来将年月日排序
char op1;用来存放输入的第一个字符
char op2;用来存放输入的第二个字符

2.2.2代码截图(由于知识的掌握程度不够我的代码有点长)

2.2.3造测试数据

|输入数据|输出数据|说明|
|2/3-123|0123-02-03|合法日期|
|13+12+45|0045-12-13|合法日期|
|29,2,2019|Invalid Date!|不合法日期|

2.2.4PTA提交列表及说明

Q1:我题目没仔细阅读只是直接按大小排序再判断合理性,忽略了题目要求的同小于12先月后日。
Q2:改了第一题的问题但还是没把题目理全,忽略了题目要求的如果排序后第二大的数字大于12小于31最小的小于12将小于12的当作月,大于12的当作日。

2.3c04嵌套循环7-3 打印九九口诀表

2.3.1伪代码

int n;存储输入的要求的打印的行数
int i;循环时输出i行
int j;循环时输出j列

2.3.2代码截图

2.3.3造测试数据

|输入数据|输出数据|说明|
|4|11=1
1
2=2 22=4
1
3=3 23=6 33=9
14=4 24=8 34=12 44=16 |正常数据|
|1|11=1 |最小n|
|9|1
1=1
12=2 22=4
13=3 23=6 33=9
1
4=4 24=8 34=12 44=16
1
5=5 25=10 35=15 45=20 55=25
16=6 26=12 36=18 46=24 56=30 66=36
17=7 27=14 37=21 47=28 57=35 67=42 77=49
1
8=8 28=16 38=24 48=36 58=40 68=48 78=56 88=64
1
9=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 99=81 |最大n|

2.3.4PTA提交列表及说明

Q1234:占四个我刚开始用了%4d结果输出的答案为11= 1,向右对齐了,然后脑抽改成了%04d结果变成了11=0001,1前面多了三个0,最后通过百度搜所猜知道在%后加个-才是向左对齐。
Q5:刚开始我没有加上判断,直接回车的输出最后只有的一个最小n正确。
Q6:明白了上一个的错误开始加上判断,由于第一次修改,并不完善,结果还是出现了格式错误。

3代码互评

我的代码:看2.2.2,由于于龙自己哭不够,我也帮他哭了半天,终于答对了,所以我选择了这题,截图过多,就不再次上传。
同学代码(来自朱振豪):

  • 1.由于mooc我只看到了循环结构,并没有开始接触数组,所以我的代码用了很基础,并且按照一个一个测试点修改。
  • 2.反观朱兄的代码,明显上代码的行数少了很多,运用了后面的知识,表现出他学习积极性之高,理解能力之强。
  • 3.一看我的代码,很多,很杂,并没有什么注释让人理解,可阅读性上差了很多。
  • 4.反观朱兄的代码,虽然没有注释,但也条理清晰,结构分明,可阅读性上高了许多,以五十步笑百步的态度来评价:希望他能加一些注释。
posted @ 2019-10-20 17:09  叶璃O  阅读(308)  评论(1编辑  收藏  举报