C语言I博客作业07
C语言I博客作业07
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-2 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11585 |
这个作业的目标 | <了解while和do-while循环结构,认识伪代码,将所学循环结构联系起来> |
学号 | <20209142> |
一、本周教学内容&目标
第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。
二、本周作业
1、PTA实验作业
2、代码互评
3、学习总结
三、作业格式
1.PTA实验作业
1.1:小刘刚打上了巅峰赛2500 分, 就迫不及待地向他们室友发起了solo(单挑他们会选择不一样的英雄,每个英雄都只有两个属性(血量,攻击力 ), 小刘有很多皮肤 会给他带来增益( 减损)效果(增加或者减少血量和 攻击力)然后小刘和他的室友进行 solo (单挑),小刘先手, 每次使对方血量减少自己攻击力 数值, 当一方血量小于等于 0 时被击败,小刘自认为自己能成为认证野王, 现在想让你帮助他判断 自己能否成为认证野王
1.1.1数据处理
数据表达:用了h,a,H,A,ph,pa,i,Hl,这些变量整型。
数据处理:用了if-else分支结构和while循环结构,表达式:while(h!=0{H=H-a;if(H>0){h=h-A;}else{H=H1;i++;}if(h<=0){goto end;}},说明:如果小刘的攻击力,大于他室友的生命值,他就一直赢,如果小刘的攻击力不大于他室友的生命值,则他的室友和他进行车轮战,再如果小刘的生命值比他室友的攻击力低,他就一把都赢不了。
伪代码:
h←h+ph
a←a+pa
if a≥Hl
then printf "The king of the wile certification!"
while h≠0
H←H-a
if H>0
then h←h-A
else H←Hl
then i++
if h≤0
ent
if i←←0
then printf"I'm too dishes!"
else printf"%d\n" i
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 1,2 1,3 0 | 4 | 小刘的攻击力小于室友的生命值,然后室友攻击小刘一次,进行车轮战,最后战胜4个人。 |
1 3,1 2,1 3 | The king of the wild certification! | 小刘的攻击力大于他室友生命值,所以一直赢。 |
1 1,5 3,1 1 | I'm too dishes! | 小刘的攻击力小于他室友的生命值,然而他室友的攻击力大于小刘的生命值。 |
9 1,2 1,9 0 | 17 | 小刘的攻击力小于室友的生命值,然后室友攻击小刘一次,进行车轮战,最后战胜17个人。 |
1.1.4 PTA提交列表及说明
提交列表说明
部分正确:在进行了一系列的循环结构,一些测试点的答案发生错误。
部分正确:通过一些循环结构,只看到了前面一部分,对后面输出的答案就有点不负责了,导致答案错误。
编译错误:输出过程中,没有对一些结构包括进行区分,导致代码编译不出。
1.2:日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。
1.2.1数据处理
数据表达: 用了n变量,是整型。
数据处理:用了if-else分支结构和while循环结构。表达式:if(n%2==0{n=n/2;printf("%d/2=%d\n",2*n,n);}else{n=n*3+1;printf("%d*3+1=%d\n",n/3,n/3*3+1);}通过一个while循环结构,在里面弄一个if-while分支结构。
伪代码:
if n=1
then printf "0"
while n≠1
if n%2=0
then n÷2
printf "%d÷2←%d\n" 2xn n
else
then n←nx3+1
printf "%dx3+1←%d\n n÷3 n÷3x3+1
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 | 5*3+1=16,16/2=8,8/2=4,4/2=2,2/2=1 | 是个偶数就除2,如果是奇数就乘以3加1,让5经过这一系列变化,最后输出结果为1。 |
6 | 6/2=3,33+1=10,10/2=5,53+1=16,16/2=8,8/2=4,4/2=2,2/2=1 | 是个偶数就除2,如果是奇数就乘以3加1,让6经过这一系列变化,最后输出结果为1。 |
3 | 33+1=10,10/2=5,53+1=16,16/2=8,8/2=4,4/2=2,2/2=1 | 是个偶数就除2,如果是奇数就乘以3加1,让3经过这一系列变化,最后输出结果为1。 |
1 | 0 | 在条件中输入1输出0。 |
1.2.4 PTA提交列表及说明
提交列表说明
段错误:在这道题目中,各个部分的意识相互矛盾,并且scanf()中&没输出。
编译错误:在代码中,if-else和while相互矛盾,导致编译器输出不出,导致编译错误。
2.代码互评
同学代码截图1:
自己代码截图1:
1:同学结束输出是break,我的goto end。
2:同学输出的变量是hh,aa;我的是H,A。
3:同学在while结构中用了if,我在while结构中用了if-else。
同学代码截图2:
自己代码截图2:
1:同学用的是for循环结构,我用的是do-while循环结构。
2:同学用的是整型i,n;双精度num,sum;我用的都是整型count,number,sum,x。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周 | 15h | 346 | 了解代码的输入输出 | 变量的表示 |
第九周 | 25h | 541 | 进行变量计算,了解整型、浮点型 | 各个结构不清楚 |
第十周 | 40h | 749 | 对for结构的运用 | 对复杂问题的变量提供不全 |
第十一周 | 35h | 659 | 对主函数和其他定义函数的运用,对if结构的了解 | 对定义函数代码结构的不熟悉 |
第十二周 | 43h | 756 | 了解了字符型和if-else分支结构 | 对if-else分支结构{}用的不熟练,逻辑思维没有到位 |
第十三周 | 39h | 620 | 学习到了switch结构,这种结构使代码看起来更加的整洁 | switch结构的使用熟练问题,if-else逻辑思维不强 |
第十四周 | 45h | 652 | 学习到了while和do-while循环结构,让代码看起来更加舒服,让我多一种思维方式 | 对分支结构和for循环还是不熟练 |