C语言I博客作业06
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | <作业要求> |
我在这个课程的目标是 | 提高编程能力,进一步了解代码和总结本周学习过程 |
这个作业在那个具体方面帮助我实现目标 | pta的作业总结和同学代码互评提高对代码的了解程度和进行本周总结来提高总结能力 |
参考文献 | 《C语言程序设计》 |
学号 | 20209027 |
1.PTA实验作业(20分/题)
1.1猜数字游戏。
猜数字游戏是令游戏机随机产生一个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
60
-2
输出样例:
Too big
Too small
Too small
Good Guess
1.1.1数据处理
数据表达:整型:i, mynumber, yournumber, flag, n。
mynumber, yournumber, n用于承载输入数据分别表示为系统游戏机产生的随机数,用户猜测数,以及猜测的最大次数n。
flag, i用于承载测试数据表示是否到达n次之前猜中。
数据处理:数据表达式:关系表达式。流程结构:分支结构,判断结构,循环结构。
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
用户刚好第四次猜中 | ||
用户在四次机会内没有猜中 | ||
用户一次性猜中 | ||
用户第二次就猜中 |
1.1.4 PTA提交列表及说明
1.部分错误
1.1答案错误:一直出现答案错误,也弄不清原因,重写无数次,试过各种方法,起原因出在两个地方,
其一是因为if条件语句被我弄反了,其二是因为输入错误,Game Over后面没有!,害得我好找一阵。
2.编译错误:之前有出现编译错误,放到别的编译环境不报错但这里报错。究其原因我也是找了蛮久,
竟是因为开头调用库函数中的s大写了,这是智能输入,当我打入stdio时自动将s大写,害。
1.2 水仙花数。
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13 +53 +33 。 本题要求编写程序,计算所有N位水仙花数。
输入格式:
输入在一行中给出一个正整数N(3≤N≤7)。
输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。
输入样例:
3
输出样例:
153
370
371
407
1.2.1 数据处理
数据表达:整型:N, sum, a, c, d。
N用于承载输入数据表示N位正整数。
sum, a, c, d用于承载测试数据分别表示符合要求的水仙花数,b用于分离的每位上的数字,c用于防止数据溢出,d用于判断。
数据处理:数据表达式:赋值表达式,关系表达式。流程结构:分支结构,判断结构,循环结构。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
3 | 3位数的水仙花数有153,370,371,407 | |
4 | 4位数的水仙花数有1634,8208,9474 | |
5 | 5位数的水仙花数有54748,92727,93084 | |
7 | 7位数的水仙花数有1741725,4210818,9800817,9926315 |
1.2.4 PTA提交列表及说明
1部分正确
1.1答案错误:先是最开始的数据溢出因此我定义了变量c来解决,后来是因为当N为7时错误,一直找不到解决方法,
后来看到了提交后的提示语当N为7时直接输出答案,最后成功运行成功。
2.代码互评(5分)
题目:
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13 +53 +33 。 本题要求编写程序,计算所有N位水仙花数。
输入格式:
输入在一行中给出一个正整数N(3≤N≤7)。
输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。
输入样例:
3
输出样例:
153
370
371
407
同学代码截图
自己代码截图
不同
- 该同学使用了自定义函数来计算每个位上的数字的N次幂之和而我调用的数学函数
- 该同学运用了for循环的嵌套来解决问题而我运用的do-while来解决问题
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
6/10.5-6/10.11 | 9小时左右 | 大约432行 | 输出“Hello World!"及温度转换 | 无 |
7/10.12-7/10.18 | 8小时左右 | 大约471行 | 分段函数中的if-else语句和温度转换表 | scanf语句的使用 |
8/10.19-8/10.25 | 10小时左右 | 大约640行 | for循环语句与乘方表和阶乘表的生成 | 自定义函数的调用 |
9/10.26-9/11.1 | 8小时左右 | 大约640行 | 二分支和多分支结构和if-else及else-if语句还有字符型数据和逻辑运算 | 字符型数据的灵活运用 |
10/11.2-10/11.8 | 10小时左右 | 大约920行 | switch语句 | 无 |
11/11.9-11/11.15 | 9小时左右 | 大约740行 | 自定义函数的使用 | 无 |
12/11.16-12/11.22 | 12小时左右 | 大约1200行 | 三大循环语句的使用 | 无法熟练运用三大循环语句 |
13/11.23-13/11.29 | 11小时左右 | 大约1000行 | 无 | 无 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
又经过了第十三周,这一周我没有学习新的知识,而是写pta作业来巩固知识,以及更加熟练的编程,
我已经基本能够了解并运用三大循环语句了,还是挺期待下一章节的函数学习。