C语言I博客作业04
问题 | 答案 |
---|---|
这个作业属于哪个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9770 |
我在这个课程的目标是 | 学会并熟悉运用C语言 |
这个作业在哪个具体方面帮助我实现目标 | 进一步学会了数据处理,PTA使我学会了for语句 |
参考文献 | 《C Primer Plus》《C语言程序设计》 |
1. PTA实验作业
1.1 求平方与倒数序列的部分和
题目内容:本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m2+1/m+(m+1)2+1/(m+1)+⋯+n^2+1/n。
1.1.1 数据处理
数据表达:用了整形变量m、n,双精度浮点型变量sum、s。
数据处理:使用了for循环语句,输入两个数m,n,循环执行从m到n累加循环式S=m^2+1/m.
1.1.2 实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 10 | 355.845635 | 样例数据 |
7 10 | 294.478968 | 较小的两个数 |
365 800 | 154844310.786710 | 较大的两个数 |
7 700 | 114578363.679010 | 一小一大的数 |
1.1.4 PTA提交列表及说明
- 编译错误:只给m赋值,忘了需要输入两个正整数m,n,改成了scanf(“%d %d”,m,n)
- 编译错误:没有用数学式函数,应该用pow(m,2)来表示m的平方
- 编译错误:s变量定义错误,应该是双精度浮点型,我定义成了整型
1.2 求交错序列前N项和
题目内容:本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
1.2.1 数据处理
数据表达:使用整形变量n、i、flag、a,作为输入数据,使用了双精度浮点变量sum、s用来储存数据
数据处理:用flag表示符号,初始为正,找出循环规律s=flagi/(2i-1.0),从i=1开始,累加所有循环到n次
1.2.2 实验代码截图
1.2.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 | 0.917 | 输入样例 |
10 | 0.380 | 较小的数 |
500 | 0.392 | 较大的数 |
1.2.4 PTA提交列表及说明
- 答案错误:公式s=flagi/(2i-1.0)中第二个乘号没打。
2. 代码互评
2.1 题目7-4
题目截图
2.1.1 同学代码
2.1.2 自己代码
不同点:
- 她用了三个整形变量,我用了两个,其实就直接把m表示i了
- 我用了数学格式函数pow,她直接用i*i表示平方
2.2 题目7-3
题目截图
2.2.1同学代码
2.2.2自己代码
不同点:
- 我使用整型变量flag来表示正负,她直接在双精度浮点变量t公式定正负
- 她用了余数表示,如果累加为偶数次,此项为负号,奇数次则为正
- 循环累加的公式规律也不一样,但是是表达的同一个意思
3. 学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周 | 7天 | 39 | 学会用markdown语法写博客园,用PTA打代码 | 代码格式一无所知 |
第二周 | 6天 | 60 | 下载编译器,学到了提问的智慧 | 对编译器还是不了解 |
第三周 | 3天 | 121 | 分段函数的表达,if-else语句的用法 | 对各语法还是不了解,数学库函数有太多不知 |
第四周 | 3天 | 77 | for循环语句,累加计算 | 对各语句还是不熟练 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
本周主要学习了for循环语句。先定义变量,明白自己所需要求的值是执行几次累加。找到循环的规律,如果有需要递增或者变号的规律,那么也把规律一起加入循环的内容里,正负循环可以使用变量flag=-flag,flag初始值为1,也可以直接用公式表示。比如s是一个公式,打上s=-s也可表示正负变号。先在外面要记得定义累加初始值。
3.3.2 学习体会
对代码表示有了进一步的了解,但是有时候还是想不起来用数学库函数,所以有些题就有点在公式表达上卡住了。for循环也基本只能明白一点点,根据一些例题可以明白有哪些内容是需要加在循环体内的。无论做什么都要有清晰的头脑,可能是这次PTA题目相似度比较高,老师上课也讲过,所以没有花太多时间,有时候觉得,一次性过了是一件让人很开心的事情,就算是因为题目简单或者有例题,我还是觉得自己没有刚开始那么什么都不懂了。有些不会的还是会问同学,总有会的同学帮我解答,有同学还会找角度帮我分析,让我自己明白错误点在哪里,这样对我的帮助很大,我也会继续好学下去的!!!加油!