C语言I博客作业07
这个作业属于哪个课程 | C语言程序设计II |
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 熟练使用C语言 |
这个作业在那个具体方面帮助我实现目标 | 对本周的学习内容理解更深,总结反思这周学习感受 |
参考文献 | 《C语言程序设计》 |
学号 | 20209017 |
1.PTA实验作业
1.1 题目名1: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”则结束。
输入样例:58 4 70 50 56 58 6 -2
输出样例:
Too big
Too small
Too small
Good Guess!
1.1.1数据处理
数据表达:用了num,guess,i,n变量,这些变量的值是定义计算赋值来的,类型是整型。
数据处理:数据用到数学表达式、条件表达式。 流程结构用到选择结构(if-else)与循环结构(while)。
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
58 4 70 50 56 58 6 -2 | Too big Too small Too small Good Guess! | sample 超过3次、正好N次猜出 |
58 4 58 | Bingo | 1次猜中 |
58 4 70 50 58 | Too big Too small Lucky You! | 3次猜中 |
58 4 70 50 52 54 56 58 | Too big Too small Too small Too small Too small Game Over | 超过n次无效 |
58 3 0 | Game Over | 直接跳过 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误:显示没有提到while与}前要加;
解决办法:仔细检查这条语句,发现while打错了。
2.部分正确:sample 超过3次、正好N次猜出与超过N次猜对无效错误与直接退出错误
解决办法:直接退出处没写break无法跳出循环,sample 超过3次、正好N次猜出输出处少打了一个!,超过N次猜对无效错误不应该加等于号。
1.2 题目2:7-6 购物(二)
用户购买了若干个商品(商品数不超过10),现在,他告诉你每件商品的价格,你计算出这些商品的平均价格。
输入格式:若干个以空格间隔的实数(每个数不超过100000),以-1作为输入结束的标志。
输出格式:一个实数,表示商品的平均价格,精确到小数点后两位。
输入样例:890.78 2769.8 12300 3532.2 -1
输出样例:4873.19
1.2.1 数据处理
数据表达:用了num,result,dight,average变量,此变量的值是定义计算赋值来的,类型是双精度浮点型。
数据处理:数据用到条件表达式与数学表达式。 流程结构用到选择结构(if-else)与循环结构(while)。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
0 | 0 | 商品数为极端值 |
20 | 20 | 商品数较少 |
890.78 2769.8 12300 3532.2 -1 | 4873.19 | 与sample同例 |
890.78 2769.8 12300 3532.2 67 9 476 58 37 485 678 | 1936.62 | 商品数超过10 |
13000 | 0.00 | 商品价值超过100000 |
1.2.4 PTA提交列表及说明
提交列表说明:
1.部分正确:商品数极端值错误。
解决方法:忽略了商品数为0。
2.编译错误:average未定义少添加了一个分号。
解决方法:增加average变量,忘记定义。观察每个语句是否有;。
3.部分正确:商品数极端值错误。
解决方法:将average的计算提前,商品数为0时,直接写average=0。
2.代码互评
2.1购物
用户购买了若干个商品(商品数不超过10),现在,他告诉你每件商品的价格,你计算出这些商品的平均价格。
输入格式:若干个以空格间隔的实数(每个数不超过100000),以-1作为输入结束的标志。
输出格式:一个实数,表示商品的平均价格,精确到小数点后两位。
输入样例:890.78 2769.8 12300 3532.2 -1
输出样例:4873.19
2.1.1同学1
2.1.2同学2
2.1.3自己
2.1.4不同之处
1.同学对用户输入的商品价值直接写在了while语句的判断条件里,这样scanf就不用像我的一样写两次。
2.同学计算average的值是放在最后,这样在商品数为了0的条件里需要让商品数为1,目的是为了average计算时分母不为0,而我的则是将average的计算放在了各个情况中,在商品数为0时直接写average=0.
3.对于一些变量等于同一变量加(减、乘、除)其他变量或常数,同学是重复写了这一变量,而我则是将运算符放在前面,就可以少写一次这一变量。
3.学习总结
3.1学习进度条
周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的问题 |
---|---|---|---|---|
第一周 | 0天 | 0行 | C语言知识的大纲 | 目前没有问题 |
第二周 | 3天 | 约20行 | Hello world编程Markdown语法 | 目前没有问题 |
第三周 | 5天 | 约80行 | 华氏度与摄氏度的转换、调试 | 对应该如何调试还不太懂 |
第四周 | 5天 | 约90行 | if-else语句 | PTA作业在scanf语句处有警告,该如何修改 |
第五周 | 5天 | 约125行 | for语句 | 对for语句的使用不够熟练 |
第六周 | 5天 | 104 | 如何定义函数 | 对定义函数的操作不过熟练 |
第七周 | 5天 | 184 | char数据类型的用法 | 用char类型不熟练,分不清什么时候要加'' |
第八周 | 5天 | 272 | switch语句用法 | 有部分情况不知怎么用 |
第九周 | 4天 | 251 | while语句与do-while语句用法 | 暂无疑惑 |
3.2累计代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第一周 | 0 | 0 |
第二周 | 808 | 20 |
第三周 | 808 | 100 |
第四周 | 1426 | 190 |
第五周 | 2968 | 315 |
第六周 | 4144 | 409 |
第七周 | 7053 | 593 |
第八周 | 8814 | 865 |
第九周 | 11037 | 1116 |
![]() |
3.3学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
1.实验课的课堂作业完成效率低,经常在一个题的一个小地方纠结很久,导致无法写完实验课上布置的题目。
2.这周的PTA作业对我来说有点难,有几个题目经常遇到运行超时的问题,不知要从哪里改起,就只能推翻重来。
3.听学长们的讲课知道了代码许多更简洁的写法。