这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-1 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11584 |
这个作业的目标 | 更加细化的学习C语言课程,对于C语言的了解越来越深,拓展循环语句应用 |
学号 | 20209097 |
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11584 |
我在这个课程的目标是 | 更加了解C语言课程,对于编程的理解更深, |
这个作业在那个具体方面帮助我实现目标 | 拓展了循环语句只是点,明白了while与for与do...while..之间的差别与联系,循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。 |
参考文献 | C Primer Plus 和C语言程序设计以及场外求助 |
1.PTA实验作业
1.1 :7-2 野王认证
小刘刚打上了巅峰赛2500 分, 就迫不及待地向他们室友发起了solo(单挑
他们会选择不一样的英雄,每个英雄都只有两个属性(血量,攻击力 ), 小刘有很多皮肤 会给他带来增益( 减损)效果(增加或者减少血量和 攻击力)
然后小刘和他的室友进行 solo (单挑), 小刘先手, 每次使对方血量减少自己攻击力 数值, 当一方血量小于等于 0 时被击败,小刘自认为自己能成为认证野王, 现在想让你帮助他判断 自己能否成为
认证野王。
1.1.1数据处理
数据表达:运用了许多的整型变量,lh,la,sh,sa,pa,ph,i都由赋值所得,x,y,z由前面的整型数算术所得。
数据处理:运用了赋值运算符,算术运算符,逻辑运算符,if...else...语句,while语句;
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 1 2 1 3 0 | 4 | 小刘的英雄血为2,攻击力为1,室友的英雄血为2,攻击力为1,皮肤加成血3,攻击力0,击败室友4次 |
2 1 2 2 0 0 | I'm too dishes! | 小刘的英雄血为2,攻击力为1,室友的英雄血为2,攻击力为2,皮肤加成血0,攻击力0,小刘不可以击败任何一个室友 |
4 4 2 1 0 0 | The king of the wild certification! | 小刘的英雄血为4,攻击力为4,室友的英雄血为2,攻击力为1,皮肤加成血0,攻击力0,小刘能击败无限多的室友成为认证的野王 |
4 2 2 4 0 1 | The king of the wild certification! | 小刘的英雄血为4,攻击力为2,室友的英雄血为2,攻击力为4,皮肤加成血0,攻击力1,小刘能击败无限多的室友成为认证的野王 |
2 1 2 1 10 0 | 11 | 小刘的英雄血为2,攻击力为1,室友的英雄血为2,攻击力为1,皮肤加成血10,攻击力0,击败室友11次 |
... | ... | ... |
编程正确。
1.1.4 PTA提交列表及说明
2分:实验其他的思路,错误;解决:回归之前的方案。
0分:编译错误,一些小地方由于思路的纠缠而造成“;”未打;
5,6,7分:有些情况考虑的不周全,未能达到要求,
8分:不断地调试和流程思路图,以及场外求助,终于解决了问题。
1.2 :7-4 猜数字游戏
猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。
1.2.1 数据处理
数据表达:运用整数型变量a,b,c,n,其中a,n,c,为赋值所得,b数为循环变量。
数据处理:运用赋值表达式,逻辑运算符,if...else...语句,while语句。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
58 4 70 50 56 58 60 -2 | Too big , Too small ,Too small , Good Guess! | 运行4次,随机数为58,输出正确 |
60 3 70 65 60 79 -1 | Too big ,Too big , Lucky You! | 运行3次,随机数为60,第三次为60,输出正确 |
60 3 60 69 71 -1 | Bingo! | 运行3次,随机数为60,第一次为60,输出正确 |
60 3 58 61 59 60 | Too small ,Too big ,Too small , Game Over | 运行3次,随机数为60,第三次为59,输出正确 |
60 5 59 -1 69 | Too small ,Game Over | 运行3次,随机数为60,第二次为-1,输出正确 |
... | ... | ... |
编程正确
1.2.4 PTA提交列表及说明
开始时进入的死循环,没看清题目,用了#include<time.h>与#include<stdlib.h>两个头文件,偏离了题目。
思路混乱,在不停的修正中不断地遗落其他需要的条件,而导致部分正确,不断地丢失数据,或造成数据混乱;
通过思路的清理和不断地调试;终于解决了问题。
2.代码互评
我的代码:
陈兴同学的代码:
我与陈兴同学的代码相比,我的代码比较简便,他比我多了一个int flag;我的的流程比较清晰;
我的代码:
2班班长李莘乐同学的代码
我借鉴了李同学的思路,但与李同学的代码有很多不同,他有他的打代码习惯,如a+=b,与我的a=a+b来个死一样的,对我来说有点不习惯,还有goto前往我还是在李同学带啊中看到,李同学的代码有很多的地方值得我学习。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 所学的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周/10.19~10.25 | 10小时 | 100 | 开始了解了软件工程,学会了使用基本的c语言和markdown语法。 | 刚刚接触有很多的迷惑,只会机械的模仿 |
第九周/10.26~11.1 | 12小时 | 250 | 常量,变量,表达式,赋值等,数据表达与流程控制 | 只知道机械编码,没弄懂语句,语言的意义 |
第十周/11.2~11.8 | 14小时 | 370 | 开始细学流程控制和数据表达,学了判断,for语句 | 深入了解了,更对函数,表达式等意义的模糊 |
第十一周/11.9~11.15 | 16小时 | 450 | 函数的参数的使用 | 多重参数的更变很复杂,对于参数不是很了解,仅仅用于使用 |
第十二周/11.16~11.22 | 20小时 | 600 | 分支结构,字符型char,逻辑运算符 | 对于一些与越来越深的学习出现了很多问题,很多地方开始出现矛盾,int,double,%d,%lf,%f之间的差别与冲突 |
第十三周/11.23~11.29 | 24小时 | 800 | 分支语句的拓展 | 数组a[],分支结构switch语句对于c语言的投入越来越多了,也有更多的问题需要解决 |
第十四周/11.30~12.6 | 24小时 | 900 | 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题 | 循环的流程不是很了解,break语句的使用有问题 |