题目1:交错数列的前N项和
实验代码:
#include <stdio.h> #include <math.h> int main() { int n,a=1,b=1,i=1; double sum=0.0; scanf("%d",&n); while(i<=n){ sum=sum+1.0*a/b*pow((-1),i+1); i++; a=a+1; b=b+2; } printf("%.3lf",sum); return 0; }
设计思路:
1.定义分子a,分母b,循环变量i,定义浮点数加和为sum,并使输入的值n可以被赋值。
2.在i<=n的情况下开始执行循环,通过观察可以得出,分子每次+1,分母每次循环+2,根据规律即可输出加和sum的值。
调试过程:
在第一次提交过程中,没有输入#include<math.h>,使得提交失败,而后几次的失败对我来讲有点莫名其妙,我只是把等号左右的数或字母留了一个空格,输出的结果也是正确的,但是在pta的提交过程中则是始终错误,是不是有什么特殊的限制我到现在都没有懂,而去掉那一个空格的位置后,代码不变,其提交的结果就变成了正确,至少我有点儿摸不着头脑。
流程图:
题目2:统计平均成绩及及格人数
实验代码:
#include<stdio.h> int main () { int a,b,c=0,d=1,sum=0; float Ave; scanf("%d",&a); if(a !=0) { while(c<=a) { scanf("%d",&b); if(b>60) { d = d+1; } else if(b<60) { d = d + 0; } sum = sum + b; c = c + 1; } Ave = (sum+0.05) / a; } else if(a==0) { Ave = 0; d = 0; } printd("Ave = %.1f\n count = %d",Ave,d); return 0; }
设计思路:
1.定义出学生成绩的个数a,成绩b,循环次数c,及格人数d以及成绩总和sum,并定义浮点数平均值Ave。
2.输入a后判断a是否为零,不为零则进入循环,为零则输出平均成绩和及格人数都为0.
3.当a开始循环后,看成绩b的数值,若b>60,则及格人数加1,反之则反之,最后再进行成绩总和的计算以及平均值的计算。
调试过程:
首先,我莫名其妙的遇到了一个问题 [Error] ld returned 1 exit status,在百度上搜索,答案是有程序在运行或者有防火墙之类的,但是跟我的状况都不符合,我也是这直接把代码放在pta上进行编译测试,但是直接得到了编译错误的答案,很是摸不到头脑。在车老师的帮助下,问题得到了解决,只是错敲了printd,不吐槽百度,这是我个人代码量不够的问题,我会加强练习。其余在代码上的问题就没有什么困难了。
流程图:
Git地址:https://git.coding.net/jz19990201lkx/At-firstly.git
学习总结:
在这一周的学习中,学习了while,do...while,for等语句,我觉得我掌握的还不是很扎实,需要加强的地方还有很多,,就比如在实践代码的输入量上就是我欠缺的一个大关,本身就掌握的不是很好,再没有多加练习,欠下的债就会更多,在下周的学习中我会注重这方面的练习的!
学习进度表:
作业点评:
1.于耀凇:http://www.cnblogs.com/jsjyys/p/7826828.html
2.董欣:http://www.cnblogs.com/dx2017/p/7809786.html
3.张国庆:http://www.cnblogs.com/zgq947/p/7856360.html