这个作业属于哪个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11588 |
我在这个课程的目标是 | 熟练的使用for循环和while循环,do···while循环,并掌握之间的联系,用多种循环解题,寻找最简解。 |
这个作业在那个具体方面帮助我实现目标 | pta实验作业、同学代码互评。 |
参考文献 | C语言程序设计(3)、C primer plus |
学号 | <20208956> |
1.PTA实验作业(20分/题)
请再此处列出自己的排名图片。
从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:
1.1 题目名1 野王认证
题目内容描述
刘和他的室友进行 solo (单挑), 小刘先手, 每次使对方血量减少自己攻击力 数值, 当一方血量小于等于 0 时被击败,小刘自认为自己能成为认证野王, 现在想让你帮助他判断 自己能否成为认证野王,如果小刘能击败无限多的室友成为认证的野王, 则输出“The king of the wild certification!”否则如果小刘不可以击败任何一个室友, 则输出 “I'm too dishes!”;否则输出一个整数, 表示小刘击败的室友数量.
1.1.1数据处理
数据表达:定义h,a,H,A,ph,pa,i,z都为整型。h, a,代表小刘英雄的血量, 攻击力,H,A,代表室友英雄的血量, 攻击力,ph, pa, 代表皮肤增加的血量,攻击力。
数据处理:使用if条件判断语句,将有可能的情况进行分类,在if语句中还镶嵌了while循环。
1.1.2实验代码截图
1.1.3 造测试数据
输入样例 | 输出样例 | 说明 |
---|---|---|
2 1、 2 1、3 0 | 4 | 击败四人 |
2 0、2、1、3 0 | 0 | 击败零人,无攻击 |
2 3、3 100 3 0 | The king of the wild certification! | 击败无限多人 |
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。
提交列表说明:
1.没有考虑到ph=a的情况
2.没有考虑到打赢无数个人有两种一种是攻击值大于对方血量值,另一种是对方攻击值为零。
3.第一次开始的时候思路错了,我先使用了while循环,定义一个i用来计数,最后使用if判断i的情况。一直部分正确,后来经过调试,发现while语句出现了死循环,当他对方攻击为零时,无法跳出while。
1.2 题目2 猜数字游戏
1.2.1 数据处理
数据表达:定义了x, n, a, A,z ;x为被猜的数,n为猜次数,a为输入的数,A用来记录次数,都为整型。
数据处理:使用for循环加if-else的嵌套结构,分多种情况进行讨论,使用break跳出循环。
1.2.2 实验代码截图
1.2.3 造测试数据
输入样例 | 输出样例 | 说明 |
---|---|---|
58 4 70 50 56 58 60 -2 | Too big Too small Too small Good Guess! | 只读出前四个 |
58 4 70 50 56 -2 | Too big Too small Too small Game Over | 读到负数结束 |
1.2.4 PTA提交列表及说明
1.一直部分正确了很久,主要是思路没有清晰,漏掉了几种情况
2.在纸上将各种情况罗列出来,后来一点一点的改,但我用的是while循环,不知道怎么用,一直是有一个到两个测试点不对。
3.询问同学后采取同学的意见使用了for循环,并且使用了一个变量的值来表示不同的情况,又多了一种解题的思路。
2.代码互评(5分)
同学代码截图
1
2
自己代码截图
1.这道题是我在pta作业集里做的最快的,只做了一次就对了,我使用了do···while与if——else在循环语句里进行判断。
2.第一位同学使用的是while语句,与do···while差不太多,但他使用了while(n!=1){while(n!=1)·····}这样显得就比较的繁琐,还有就是格式要改正一下,不美观,不方便阅读。
3.格式比第一个好,与第一个是一样的。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周 | 18 | 220 | printf,scanf的使用,以及int类型 | |
第九周 | 22 | 231 | if语句分支结构、调用数学函数 | |
第十周: | 25 | 255 | for、while、do...while语句、字符型数据的使用 | switch语句多分支结构、break语句和continue语句 |
第十一周 | 28 | 600左右 | switch语句,逻辑运算符,数组,自定义函数 | 多个循环结构的嵌套使用容易出错 |
第十二周 | 27 | 680左右 | 无新的知识点 | 排序问题 |
第十三周 | 25 | 400左右 | 巩固switch语句、const限定符、short int、long int、long long int、unsigned整数类型 | 无 |
第十四周 | 20 | 500 | 宏定义、多种循环结构的使用 | for循环与while循环之间的转换 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
不定次数的循环,如果用for循环,不给定循环条件,在循环中读一个数,判断是否是结束标志,如果不是则执行循环语句,如果是,则退出循环。
如果用while,则循环条件要为真,其余的与for一样。