C语言I博客作业04
问题 | 答案 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9770 |
我在这个课程的目标是 | 学会利用for循环语句来设计循环程序 |
这个作业在那个具体方面帮助我实现目标 | 在循环程序的结构方面 |
参考文献 | C语言程序设计(第3版) |
1.PTA实验作业
1.1 7-3 求简单交错序列前N项和 (15 分)
内容描述:本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。输入在一行中给出一个正整数N。在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。
1.1.1数据处理
数据表达:用了denominstor、flag、i、n、item、sum这些变量,其中denominstor、flag、i定义初始值为1,而n是通过scanf()函数来赋值的,item、sum通过累加而得到的。denominstor、flag、i、n为整型变量,item、sum为双精度浮点型变量;
数据处理:运用到了for循环语句和循环结构,通过输入N值来与i比较大小来进行反复循环计算,直到i>N得到结果。
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
0 | 0.000 | 使用临界值 |
10 | 0.819 | 使用题目所给数值 |
-1 | 0.000 | 使用负数 |
10000 | 0.836 | 使用较大数值 |
1.1.4 PTA提交列表及说明
提交列表:
提交列表说明:
1.段错误:没有写“&n”中的&,("sum = %.3f\n", sum)中“,”与“sum”没有空格;
2.答案正确:通过改正就对了。
1.2 7-5 求交错序列前N项和 (15 分)
内容描述:本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。输入在一行中给出一个正整数N。在一行中输出部分和的值,结果保留三位小数。
1.2.1 数据处理
数据表达:运用了N、sum、sign、i这四个变量,其中N是通过scanf()函数来赋值,sum定义初始值为0,sign和i定义初始值为1。sum值通过循环累加而得,而sign在循环往复的变换符号,i在累加的基础上再乘以2再减去1。N、sign、i为整型变量,sum为双精浮点型变量;
数据处理:运用到了for循环语句、算术运算符和循环结构,通过输入N值来作为i的比较值,然后通过 sum += (double)sign*i/(2*i-1); sign = -sign;这两个表达式来计算所得值。
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
0 | 0.000 | 使用临界值 |
5 | 0.917 | 使用题目所给数值 |
-1 | 0.000 | 使用负数 |
1000 | 0.393 | 使用较大数值 |
1.2.4 PTA提交列表及说明
提交列表:
提交列表说明:
1.答案错误:没有在定义变量的时候直接赋值,和以前一样,只是当当定义变量类型;
2.答案错误:没有想到用sum += (double)signi/(2i-1)这个表达式(通过网上查询到的,网址:https://blog.csdn.net/qq_36913610/article/details/81138328);
3.答案错误:在这个printf("%.3f\n", sum)表达式我按照以前写成printf("sum = %.3f\n", sum)的格式;
4.答案正确:通过网上查询得到printf("%.3f\n", sum)这个表达式,改正后就正确了;
5.答案错误:我想验证一下是不是因为在printf("%.3f\n", sum)这个表达式我写成printf("sum = %.3f\n", sum)而错的,结果是的;
6.答案正确:我又改回来了,所以答案是正确的。
2.代码互评(5分)
题目:7-4 求平方与倒数序列的部分和
同学代码截图
自己代码截图
不同之处:
1.程序中调用了数学函数,包含头文件math.h;
2.定义的变量不同;
3.循环语句不同;
4.m的平方运用了幂函数
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
10/14-10/20 | 10 | 105 | for循环语句和循环结构 | 不知道定义多少个变量 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
这一周我们学习了for循环语句和循环结构,祝愿学习循环起点、循环条件、循环步长的表达式和循环体语句。循环起点的表达式:i=1;循环条件的表达式:i<=n(n是循环终点);循环步长的表达式:i++;循环体语句:sum=sum+i。即for(i=1; i<=n; i++){sum=sum+1.0/i}通过这些语法知识我们可以对进行往复相加减的数学题来编程。
3.3.2 学习体会
感觉for循环语句的学习比较易于接受,但是在做PTA上面的作业的时候还是出现的很多问题。比如连main错写成nain而导致编译错误;再如printf("%.3f\n", sum)中不像以前那样写成printf("sum = %.3f\n", sum)。虽然是在网上查阅到的,但是我学会其他的表达式。刚开始写这次PTA上面第一个编程题目时,连哪些该定义整型变量和那些该定义单精度浮点型变量没有完全弄清楚,不过通过仔细琢磨和网上查阅相关资料终于弄明白了。所以说在学习当中要不断的汲取可以得到的资源来丰富我们的大脑,并且还要把书本的知识点要理清。还有的时候自己写了好久并且还检查了而提交后出了错误,可能会有奔溃心理,但是我一定要克服困难,还要把问题解决,问问自己到底是哪里出错并且该如何去解决。