1.作业头
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/ |
---|---|
这个作业要求在哪里 | <<https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11585 >> |
这个作业的目标 | <回顾以往知识点,熟悉并运用各种语句(如while,do while语句)的使用解决循环问题并学会进行学习总结,从别人的作业中吸取经验> |
学号 | <20209124> |
一、本周教学内容&目标
第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。
二、本周作业头
这个作业属于哪个课程 | <C语言程序设计II> |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11585 |
我在这个课程的目标是 | <学会编程,巩固所学知识提高实际编程能力,做到条理清晰有理有据并且通俗易懂> |
这个作业在那个具体方面帮助我实现目标 | <能够理解代码中变量的实际意义以及类型等,并具有时长限制能够更好地督促自己学习,同时提高自己的学习能力也更好地掌握分支结构的使用,更好地了解并利用while,do while语句解决循环问题> |
参考文献 | <《c语言程序设计实验指导》> |
三、本周作业
1,PTA实验作业
2,代码互评
3,学习总结
四、作业格式
1.PTA实验作业
排名图片
1.1 野王认证
lo (单挑), 小刘先手, 每次使对方血量减少自己攻击力 数值, 当一方血量小于等于 0 时被击败,小刘自认为自己能成为认证野王, 现在想让你帮助他判断 自己能否成为认证野王
输入格式:
一共三行
第一行两个整数 h, a,代表小刘英雄的血量, 攻击力
第二行两个整数 H,A,代表室友英雄的血量, 攻击力
第三行两个整数 ph, pa, 代表皮肤增加的血量,攻击力
输出格式:
如果小刘能击败无限多的室友成为认证的野王, 则输出“The king of the wild certification!”;
否则如果小刘不可以击败任何一个室友, 则输出 “I'm too dishes!”;
否则输出一个整数, 表示小刘击败的室友数量,
1.1.1数据处理
数据表达:使用整型函数定义h, a, H, A, ph, pa, count = 0, t;并且相关数据进行了赋值,由题意对数据加以判断并利用while语句和if-else语句进行运行,从而得出最后答案来
数据处理:使用了新学的while语句进行处理,对于不确定的循环次数进行判断从而是否进行程序的运行处理,再将if-else语句嵌入其中,以达到题目目的,输出最后的答案
**伪代码**
Begin**程序开始**
输入 h, a, H, A, ph, pa, count = 0, t
h ←h + hhh;
a ←a + aaa;
x ←hh;
while 1{
if a >= H 则 The king of the wild certification! 返回
否则
x = x - a
if x <= 0 则 x = hh 击败室友次数加一 继续
否则
h = h - A
if h <= 0 则 返回
}
否则
if h <= 0 && count == 0 则 I'm too dishes!
否则
printf 答案 返回
End (算法结束)
1.1.2实验代码截图
1.1.3造测试数据
按照以下表格,输出你的程序面向各种测试数据结果,除了题目给出的测试数据,可以自己再造其他临界数据,越多越好,并加上必要说明
输入数据 | 输出数据 | 说明 |
---|---|---|
2 1 , 3 1 , 3 0 | 2 | 小刘只能打败2个室友 |
10 1 , 10 10 , 3 0 | I'm too dishes! | 小刘不行 |
10 10 ,3 1 , 3 0 | The king of the wild certification! | 小刘是野王 |
1.1.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法
提交列表说明:
1.编译错误:逻辑无错误,有些语句后面缺乏必要的符号,偶尔缺少必要的符号等还将scanf语句后的;错误打成了中文符号,造成了本题的编译错误并且本题只有编译错误
2.解决方法:发现题目编译错误后仔细检查并在检查过程中发现了符号的错误,询问同学查询c语言相关书籍确认并改正过来后编译正确
1.2找出一批学生的最高分
本题要求编写程序,找出最高分。
输入格式:
输入在一行中给出一系列非负整数,其间以空格分隔。当读到负整数时,表示输入结束,该数字不要处理。
输出格式:
在一行中输出最高分。
1.2.1数据处理
数据表达:使用整型函数定义变量并使用while语句进行循环次数判断,再利用if语句嵌入其中最后利用printf语句输出最后的答案
数据处理:使用scanf语句进行赋值处理,在利用while语句的同时加入if语句,这样的处理使得代码长度大大缩短,得出的答案也更明确
**伪代码**
begin**程序开始**
输入a,b=0
条件为a>=0
如果a>b
则令b=a
1.2.2实验代码截图
1.2.3造测试数据
按照以下表格,输出你的程序面向各种测试数据结果,除了题目给出的测试数据,可以自己再造其他临界数据,越多越好,并加上必要说明
输入数据 | 输出数据 | 说明 |
---|---|---|
78 23 56 89 -5 | 89 | 说明这组数据的最高分为89 |
120 49 79 9 0 | 120 | 说明这组数据最高分为120 |
4 98 56 22 11 77 | 98 | 说明这组数据最高分为98 |
1.2.4 PTA提交列表及说明
根据PTA提交列表,简要描述调试程序碰到的问题及解决办法
提交列表说明:
1.运行超时:我改正后才发现两次运行超时的原因是同一个,前面一直修改的都是正确的,所以造成了两次超时,原因是由于未对if语句中令a=b后对a进行的赋值而产生了不该产生的错误
2.解决方法:我是通过查看同学代码解决问题所在的,但由于和同学代码所用方法不一样,因此是在交流方法中发现未赋值,改正过来后得出最后答案,最后编译正确
2.代码互评
找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。
同学代码截图
自己代码截图
不同地方
1.同学定义的是srzrs和jg(不知道是啥意思),而我用的是最简单是n
2.同学的整体框架看起来和我差不多,但由于同学的英文使用看起来比我的更复杂(实际差不多)
3.同学在语句后使用了一个代换处理(srzrs=jg),而我则没有,我在前面的处理中就已经有进行了,最后使用return 0结束程序
同学代码截图
自己代码截图
不同地方
1.同学又使用了一些奇奇怪怪的英文代码,而我使用的又是一些较为通俗的代码
2.同学的一些处理让她的代码看起来更为复杂了,而我的比较简单,更通俗易懂点
3.同学使用了while语句,而我没有,我只用了if else 语句
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
8 | 17 | 120 | Hello world和其变形 | 无 |
9 | 18 | 300 | 选择结构,求华摄温度 | 判断语句if else |
10 | 19 | 400 | 循环结构 | 循环结构和循环体的区分 |
11 | 17 | 420 | 定义和调用函数,生成乘方表与阶乘表 | 学会定义函数,以及完整代码的格式和语句的顺序问题 |
12 | 18 | 400 | if-else语句结构,多分支结构,以及掌握字符型数据类型和逻辑运算符的使用 | 语句结构的运用选择和程序的基本框架 |
13 | 27 | 430 | switch语句的使用 | 对于switch里其他程序的镶嵌以及switch的灵活运用 |
14 | 30 | 450 | 熟运用while和do-while语句解决实际编程问题 | 对于判断次数无法确定 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
请回顾自己的本周的学习过程,描述学习感受,也可以提出你不理解的地方、对教师教学建议等。如果你有新的想法或者新的方法,请及时记录下来。