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 " 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
",2*n,n);}else{n=n*3+1;printf("%d*3+1=%d
",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 " 2xn n
else
then n←nx3+1
printf "%dx3+1←%d 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循环还是不熟练
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会

1:学习了do-while和while循环结构,对这种结构很喜欢,非常符合我的胃口。

2:这周学习了很多,但是对一些数学思想还是不行,代码的严谨性还是不够。

3:这周作业的难度还是在的,一道题目需要去反复尝试很多遍,很考验耐心,但是做出来后的成就感也十分美好。

4:C语言是一个注意过程的一种语音,它讲究一步一步来,不能直接就将结果包装起来,是一个特别依赖于思维的一种语音。

5:风吹过风景的美丽,让我们用行动代替想去欣赏!

原文地址:https://www.cnblogs.com/869869tmz/p/14090462.html