C语言I博客作业07
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-4 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-4/homework/11587 |
这个作业的目标 | <让我们能够熟悉地使用while和do-while结构解决问题。> |
学号 | <20209223> |
1.PTA实验作业(20分/题)
1.1 循环-古角猜想 (20分)
日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。
输入格式:
输入一个自然数n
输出格式:
输出每次运算步骤,直到结果为1.
输入样例1:
5
输出样例1:
5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1
输入样例2:
6
输出样例1:
6/2=3 3*3+1=10 10/2=5 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1
1.1.1数据处理
数据表达:整型int、字符型函数表达scanf()、printf()
数据处理:运用了循环结构中的while语句和双分支结构中的if-else语句来处理该语句;赋值表达式x=x/2、x=x*3+1;
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
8 | 8/2=4、4/2=2、2/2=1 | 输入的8为偶数,输出数据为该运算过程,得到结果为1 |
3 | 33+1=10、10/2=5、53+1=16、16/2=8、8/2=4、4/2=2、2/2=1 | 输入的3为奇数,输出数据为该运算过程,得到结果为1 |
10 | 10/2=5、5*3+1=16、16/2=8、8/2=4、4/2=2、2/2=1 | 输入的10为偶数,输出数据为该运算过程,得到结果为1 |
16 | 16/2=8、8/2=4、4/2=2、2/2=1 | 输入的16为偶数,输出数据为该运算过程,得到结果为1 |
1.1.4 PTA提交列表及说明
1、编译错误:一开始程序未编译正确,在Devc++上运行时出现了乱码现象,主要忽略了x不等于1的情况,同时还存在其他的错误。
2、运行超时:我所编译的程序所运行的时间超过了它的时间限制,未在规定时间内运行结束而出错。
1.2 7-6 购物(二)(25分)
用户购买了若干个商品(商品数不超过10),现在,他告诉你每件商品的价格,你计算出这些商品的平均价格。
输入格式:
若干个以空格间隔的实数(每个数不超过100000),以-1作为输入结束的标志。
输出格式:
一个实数,表示商品的平均价格,精确到小数点后两位。
输入样例:
890.78 2769.8 12300 3532.2 -1
输出样例:
4873.19
1.2.1 数据处理
数据表达:整型int、字符型函数表达scanf()、printf(),定义了num、sum、i、Average为浮点型变量
数据处理:运用了循环结构中的while语句,逻辑表达式num !=-1 && i<=10,赋值表达式sum=sum+num; Average=sum/i;
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
43 6.3 4.8 -1 | 18.03 | 随机测数,求商品的平均价格 |
5.7 9.1 6.4 5 -1 | 6.55 | 随机测数,求商品的平均价格 |
3.4 5 8 8.3 -1 | 6.17 | 随机测数,求商品的平均价格 |
9.1 2.1 4.9 5 -1 | 5.28 | 随机测数,求商品的平均价格 |
1.2.4 PTA提交列表及说明
1、编译错误:未将条件状况弄清楚而出错,也在DEV C++上尝试多次,同时编译时还忘记在循环语句中加入终止循环的命令
2、部分正确:在编译过程中,在循环体中出现了部分编译错误,改正后,编译正确
2.代码互评(5分)
同学代码截图
自己代码截图
同学代码与自己代码不同之处:
1、在求循环-古角猜想问题的时候,同学代码定义了变量n,紧接着执行if-else语句;而我定义变量x,紧接着执行循环结构中的while语句和双分支结构中的if-else语句,同学代码后面一部分不太理解
2、在求购物问题的时候,同学使用的是for语句和if-else语句,而我使用的是while语句,看起来更加的简短简洁
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第三周 | 三天 | 130 | 使用for循环语句实现循环程序的设计 | 有时程序中表达式写不对而出错 |
第四周 | 三天 | 135 | 调用和定义函数 | 对调用函数不是很清楚以及如何去定义函数 |
第五周 | 三天 | 148 | 分支结构if-else语句、逻辑运算符的运用 | 有部分函数的功能以及准确的调用自己所定义的函数不太清楚 |
第六周 | 两天 | 150 | 多分支结构switch语句的使用 | 优先运算级别常常未注意而导致程序运行出错 |
第七周 | 三天 | 168 | while和do-while结构的使用 | do-while语句的使用不清楚 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
1、在本周的学习过程中,学习了循环结构中用while和do-while结构去解决问题,对于我来说,这两种结构都运用得不是很熟练,特别是do-while结构还不太会熟练运用,还需要花很大的心思与时间在这一方面
2、以后在PTA做题目的时候,争取找一个时间比较长的时候来做,因为一个题目当我们做到一半,过了几个小时在做,就已经思路没有那么清晰了,就得把这个题重新再理过一遍思路,这样不但浪费时间还浪费精力
3、老师课堂讲的非常的细致,让我们都能够把知识点都理解到位,但仍需要我们多去实练,只有在不断练习当中我们才能取得进步