这个作业属于哪个课程 |
c语言程序设计 |
这个作业要求在哪里 |
作业要求 |
这个作业的目标 |
熟悉break、continue的使用 4.4 熟悉使用循环的嵌套解决问题 |
学号 |
<20208998> |
一、PTA实验作业。(20分/题)

1.1 题目名1:打印九九口诀表。
题目描述:

1.1.1数据处理。
数据表达:用了i,j,N这些变量;N通过用户输入得来; i,j,N都是整型变量。
数据处理:表达式有j*i;运用了循环嵌套。
1.1.2实验代码截图。

1.1.3 造测试数据。
输入数据 |
输出数据 |
说明 |
4 |
1x1=1\ 1x2=2 2x2=4\ 1x3=3 2x3=6 3x3=9\ 1x4=4 2x4=8 3x4=12 4x4=16 |
打出四行以内的口诀表 |
5 |
1x1=1\ 1x2=2 2x2=4\ 1x3=3 2x3=6 3x3=9\ 1x4=4 2x4=8 3x4=12 4x4=16\ 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 |
打印五行以内的口诀表 |
2 |
1x1=1\ 1x2=2 2x2=4 |
打出两行以内的口诀表 |
1.1.4 PTA提交列表及说明。

部分正确:没有按题目要求等号右边对其四位。
编译错误:在循环嵌套的时候把内循环的大括号弄掉了,后面通过dev编译查得。
编译错误:输出的公式符号没有和后面的变量相对应。
1.2 题目2:幸运彩票。
题目描述:

1.2.1 数据处理。
数据表达:用了N,i,a,b,c,b1,c1,sum1,sum2这些变量;a通过用户赋值得来,i是循环数据,
b,c分别是整个数的后三位与前三位,sum1,sum2分别是求和结果;都是整型。
数据处理:用了b=a%1000,c=a/1000,b1=b%10,sum1=sum1+b1,c1=c%10,c=c/10,sum2=sum2+c1,b=b/10;使用了循环嵌套。
1.2.2 实验代码截图。

1.2.3 造测试数据。
输入数据 |
输出数据 |
说明 |
2/233008/123456 |
You are lucky!/Wish you good luck. |
第一个前三位和等于后三位和,是幸运的,第二个不是幸运彩票。 |
1/222222 |
You are lucky! |
这个数是幸运彩票。 |
4/123123/222331/567765/667766 |
You are lucky!/Wish you good luck./You are lucky!/You are lucky! |
只有第二个不是幸运彩票,其他三个数都是。 |
1.2.4 PTA提交列表及说明。

格式错误:输出的答案没有换行 ,在PTA测试区测试对比得知。
答案错误:一开始得到的测试用例的答案正确,但提交却答案错误说明其他数据输入得到的答案不对,
后面去dev输入一组数据调试过程中发现幸运数据组后的求和sum1与sum2没有归零,导致错误。
二、代码互评。(5分)
同学代码:


自己代码:

相比较我的缺点:一眼就可以看出我的代码比较长,可能是我自己有可以省略的地方也加上去了。
其优点:第二个同学将六位的数直接拆分为六个数,再判断前三位与后三位是否相等,
没了我的那么复杂,也不需要我的后面那部分求和结果归零化,这位同学特别有想法。
其优点:第一个同学跟我想法差不多,但他那结果归零化直接放在第一个循环下面,而我放在了末尾,导致代码长度加长了,这位同学的代码很值得学习。
三、学习总结。(15分)
3.1 学习进度条。(5分)
周/日期 |
这周所花的时间 |
学到的知识 |
目前不懂的问题 |
第八周 |
7h |
总结各类符号,语句,表达式,变量等 |
语句符号会混用 |
第九周 |
9h |
分支结构雏形 |
会漏掉输出语句 |
第十周 |
9h |
循环结构雏形 |
表达式不太会写 |
第十一周 |
8h |
调用函数 |
不知道怎么去调用函数 |
第十二周 |
13h |
分支结构,字符型数字类型,逻辑运算符 |
多分支时不知如何分 |
第十三周 |
8h |
switch语句 |
不知道怎样区分switch语句与if-else语句 |
第十四周 |
14h |
while语句 |
有时候用while循环与经常会出现运行超时的情况,并且也不太会改 |
第十五周 |
20h |
break,continue语句,循环嵌套 |
break与continue具体区分 |
3.2 累积代码行和博客字数。(5分)

3.3 学习内容总结和感悟。(5分)
3.3.1 学习内容总结。
关于跳出多重循环的问题:
1.最快的方法是使用goto,可以快速跳出多重循环,但建议少使用goto语句。
2.可以写成函数return,但函数参数传递很麻烦。
3.直接修改外层循环条件,当最内层得到不符合外层条件的数直接跳出循环。
4.在大循环后面判断标志加入break。

3.3.2 学习体会。
1.本周学习了break与continue两个语句以及循环嵌套,两个语句都有其各自的适用性,break用于跳出本层循环,continue不执行后面的语句。
2.本周的循环嵌套在上周的PTA就用过,那时写作业总是会出现运行超时的情况,这周深入的学习了嵌套,对于循环嵌套,需要仔细的写每一步的代码,因为你不知道什么时候就死循环了。
3.这次的PTA作业难度有点大,让我感觉自身真是才学疏浅,很多问题都不知道如何解决,但总得找到解决的办法才行,慢慢的请教同学,发现我们之间差距还是很大的。
4.代码互评是个很好的题目,拿出自己的代码与同学的相比较,会明显发现自己的缺点和不足,也可以很好的学的自己不总的知识点 ,以及一些可以省略的部分。
5.调试是在做题的过程中很好的一个解决方案,当你不知道自己错在哪,但就是错了,这时候就需要调试过程了,调试过程观察每一个变量的变化,很清晰的可以观察的那部分不适用,也很快能找到解决方案,而不是固步自封的向同学求解,很多不懂的都必须自己去尝试求解,直到自己实在不知道哪里错了,向同学求解才是正道。
6.当在做题目实在没思路时,可以看看同学的代码,但不是照抄,而是理解同学的思路,再得到自己脑子的思路,再继续把自己所想的代码敲出来,这才是做题的正确方法。
7.在做每一个题目的时候都需要一定的过程,特别是在比较难的题时,想很久也没有思路,我们不能急于求成,这题太难可以先放一边,让自己的脑海捋一捋,说不定,在某个时刻就有了思路。