本周教学内容&目标
第2章 用C语言编写程序-循环结构 2.4 输出华氏-摄氏温度转换表。要求学生掌握使用for循环语句实现指定次数的循环程序设计。
| 这个作业属于那个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/9772 |
| 我在这个课程的目标是 | 要求掌握使用for循环语句实现指定次数的循环程序设计。 |
| 这个作业在那个具体方面帮助我实现目标 | for语句的正确使用。 |
| 参考文献 | 无 |
1.PTA实验作业
1.1 题目名1
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
1.1.1数据处理
数据表达:运用int(整型),double(双浮点型)定义变量。
数据处理:流程控制使用顺序结构for循环语句。
1.1.2实验代码截图
1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 5 | 0.197 | n小于10 |
| 10 | 0.380 | n等于10 |
| 20 | 0.386 | n大于10 |
| -1 | Invalid Value! | 小于0 |
1.1.4 PTA提交列表及说明
提交列表说明:
1.编译错误:for语句中分号按错。修改for语句中的;
2.运行超时:for语句中逻辑错误。
3.答案错误:对于for语句中i+2,和2*i-1理解不到位。
1.2 题目2
本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m2+1/m+(m+1)2+1/(m+1)+⋯+n2+1/n。
1.2.1 数据处理
数据表达:运用int(整型),double(双浮点型)定义变量。
数据处理:流程控制使用顺序结构for循环语句。运用sum+省略sum=sum+m*m+1.0/m减少内存空间使用。
1.2.2 实验代码截图
1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 5 10 | 355.845635 | m<=n |
| 5 5 | 0.917 | m=n |
| -1 10 | 0.000 (nvalid Value!) | m<0,n>0 |
1.2.4 PTA提交列表及说明
1.段错误:程序可以执行但是输出的答案不正确,我也不知道错在哪里。
2.段错误:修改过后,程序可以执行,但是输出答案不正确。
3.答案正确:其实在编译器上执行过很多次,发现用手机打的时候题目看错,再加上题目理解不到位。
1.3 题目3
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
1.3.1 数据处理
数据表达:运用int(整型),double(双浮点型)定义变量。
数据处理:流程控制使用顺序结构for循环语句。使用循环体赋值x=-x改变x的正负。
1.3.2 实验代码截图
1.3.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 10 | 0.380 | 输入值为正数 |
| -1 | 0.000 (nvalid Value!)输入值为负数 |
1.3.4 PTA提交列表及说明
其实多次使用编译器,发现输出答案总是不正确,后来发现for语句中的逻辑错误。
1.段错误:运用编译器发现for语句中的逻辑出现错误,所有for语句中的计算式全部修改序,不使用一步到位的计算式,而是运用一步一步的计算式,修改后答案正确。
代码互评
其他同学的代码类似,就去网上找了代码。
该代码使用巧妙,运用double,来处理计算式(虽然还是没有看懂是怎么回事),开始我也想运用pow形式来列出计算式,可是屡次尝试总是出错,可能是因为没有使用double的原因吧。
前面的代码相比我的,我感觉我的比较啰嗦,可是为了防止for语句中出现错误,就想找到更简单的方法,上面的那个代码,是我理想追求的,可是现在还是不了解计算式中使用double的原因。
学习总结
1.使用for循环语句最怕出现逻辑错误,如果在比较大的程序中发现逻辑错误是很被发现的,甚至导致全程序重新写,所以写关于逻辑程序是一定要把逻辑关系搞清楚。
2.学习到的小方法:在赋值过程中 尽量使用 3=x 这样赋值
解释:
在这个程序中想加语句过程忘记加 “{” 如果编译出错还好,若编译成功,输出错误,那可能就要重新写代码了,那就麻烦大。