7-3 求交错序列前N项和
实验代码:
#include<stdio.h> int main() { int i,N,h=1; float sum=0; scanf("%d",&N); for(i=1;i<=N;i++) { sum=sum+h*i/(2.00*i-1); h=h*(-1); } printf("%.3f",sum); }
设计思路:
第一步:定义各变量,根据题意区分整型与浮点数。
第二步:使用for语句完成循环,定义i初值为1,循环条件为i<=N,循环增量为i=i+1。
第三步:根据规律列出表达式,并得到输出值。
流程图:
调试过程中遇到的问题与解决方法:
在完成本题时我借鉴了其他同学的方法,但我并没有理解,之后在对for语句的重新理解中我重新在c++中根据自己的理解重新做了这道题。我所遇到的问题是运行结果小数位一直为零。
错误在于在sum=sum+h*i/(2.00*i-1);这一式子中没有考虑整型与浮点数,没有将2改为2.00.
提交列表:
7-5 统计学生平均成绩与及格人数:
实验代码:
#include <stdio.h> int main() { int a,b,c,d,sum; float average; c = 1; d = 0; sum = 0; 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; } average = (sum + 0.02f)/a; } else if(a == 0) { average = 0; d = 0; } printf("average = %.1f\ncount = %d",average,d); }
设计思路:
第一步:根据题意定义输入。
第二步:首先讨论学生人数是否为零,不是零时讨论他们是否及格。
第三步:计算平均值并输出,当分数大于等于60时,及格人数加1,输出。
流程图:
调试过程中遇到的问题与解决方法:
讨论时思路混乱不断错误改正,理解不够。
提交列表:
我的git地址是:
https://git.coding.net/zhouxuan12/123.git
点评:
http://www.cnblogs.com/exo123/p/7828105.html
http://www.cnblogs.com/fengzx/p/7811151.html
http://www.cnblogs.com/lixiaojing/
本周总结:
本周主要学习了braek,continue的使用,同时在不断地练习for语句的使用。我的问题在于并不觉得break和continue有区别,还有在编程中数字的小数位数依旧不知道如何清楚表示。