C语言I博客作业07
C语言程序设计 | 2020级计科三班 |
---|---|
作业的要求 | 作业要求 |
作业的目标 | 对所写代码以及同学代码进行分析,总结以及本周的学习体会 |
作业帮助我实现目标的方面 | 让我对while语句更加了解,对于错误地方进行总结 |
参考文献 | C语言程序设计 |
学号 | 20209028 |
1.PTA实验作业
- 请再此处列出自己的排名图片
- 从PTA题目集中选出2个你最满意的题目完成以下内容
1.1 7-6 购物(二)
用户购买了若干个商品(商品数不超过10),现在,他告诉你每件商品的价格,你计算出这些商品的平均价格。
输入格式:若干个以空格间隔的实数(每个数不超过100000),以-1作为输入结束的标志。
输出格式:一个实数,表示商品的平均价格,精确到小数点后两位。
1.1.1数据处理
**数据表达**: 浮点型变量 num表示商品的价格,value表示商品的数量,sum表示所有商品的总价,average表示平均价格;
**数据表达式**: 赋值表达式,算术表达式,逻辑表达式;
**流程结构**: 选择结构,顺序结构,循环结构,运用了while语句,if-else语句;
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
890.78 2769.8 12300 3532.2 -1 | 4873.19 | 计算所有商品的平均值 |
0 -1 | 0.00 | 商品数为极端值 |
1.1.4 PTA提交列表及说明
**部分正确**:提交结果显示商品数为极端值这一测试点错误,我以为是商品的价格为0元是极端值,改后提交仍显示部分正确,后来换了一个思路,考虑商品数量为0时的情况,但是新的问题又出来了,编译不出,经过仔细检查发现,原来我令数量等于0时,平均值无意义,后令其等于1,,提交结果显示正确。
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”,并结束程序。
输出格式:输入第一行中给出两个不超过100的正整数,分别是游戏机产生的随机数、以及猜测的最大次数N。最后每行给出一个用户的输入,直到出现负数为止。
输入格式:在一行中输出每次猜测相应的结果,直到输出猜对的结果或“Game Over”则结束。
1.2.1 数据处理
**数据表达**: 整型变量 num1,num2,N,sum;
**数据表达式**:赋值表达式,算术表达式,逻辑表达式;
**流程结构**: 选择结构,顺序结构,循环结构,运用了while语句,if-else语句;
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
58 4 70 50 56 58 60 -2 | Too big Too small Too small Good Guess! | sample 超过3次、正好N次猜出 |
58 2 58 -1 | Bingo! | 1次猜中 |
45 4 33 32 45 39 | Too small Too small Lucky You! | 3次猜中 |
34 3 33 43 90 -1 | Too small Too big Too big Game Over | 超过N次猜对无效 |
56 2 -1 | Game Over | 直接退出 |
注:为了避免表格显得太长,我将输出数据和输入数据的格式做了修改。 |
1.2.4 PTA提交列表及说明
**多种错误**:自己知道解这道题的思路,但是出现了很多错误,比如,while语句中的条件写错了,以及循环体中嵌套if语句时中括号的位置打错等等。在这之后,我一点一点的修改错误,将提交时的多种错误变成了部分正确。
**部分正确**:在“超过N次猜对无效”和“直接退出”这两个测试点出现错误,当我将while语句中的条件修改为num1>=0时,num1<0应该位于循环体外,而我在循环体内,,从而导致错误。
2.代码互评
找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。
同学代码截图
同学1:
同学2:
自己代码截图
不同处:
我和同学1、同学2使用了while语句和if-else语句,但是我们的while语句不同,所以后面情况的表达也不同,我和同学2将循环的次数这一条件放在了最上方,这样就不需要重复表示。
3.学习总结
3.1 学习进度条s
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
9/11.30-12.6 | 7小时 | 430行 | while,do-while语句 | 对于while语句中的条件掌握的不是很好 |
3.2 累积代码行和博客字数 | ||||
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
感受:对于本周的PTA作业,我觉得难度比以往大很多,有些题因为一点点思路问题,花了我大把时间去找错误。我的同学写猜数字那道题,因为一个感叹号,折磨了她一个小时。我知道学习就是这样一个过程,痛并快乐着,我享受着这个过程。还有细节问题,问题虽小,但做到很难。希望我的下周学习可以更加充足吧!