第一题
#include <stdio.h> int main() { int n,m=1; double a=0; scanf("%d",&n); while(n>=m) { double s=m/(double)(2*m-1); if(m%2==0) s=-s; a=a+s; m=m+1; } printf("%.3lf",a); }
思路:
第一步:输入项数n
第二步:定义分母与分子,并记录项数
第三步:判断每项的正负
第四步:求和
第五步:判断项数与n的大小
第六步:输出和
第七步:结束
流程图;
问题;
刚开始定义的是float,显示的是结果错误,改用double后才正确。
第二题
#include <stdio.h> int main() { int a,b=1,c; float d=0; c=0; scanf("%d",&a); while(b<=a) { int n; scanf("%d",&n); d=d+n; if(n>=60) c=c+1; b=b+1; } d=d/a; if(a==0) d=0; printf("average = %.1f ",d); printf("count = %d",c); }
思路;
第一步:输入学生人数
第二步:利用循环输入学生成绩
第三步:计算学生成绩之和
第四步:判断学生成绩是否及格,若及格则记录及格人数加1
第五步;结束循环,利用学生成绩总和与人数计算平均成绩
第六步:输出平均成绩,及格人数
第七步;结束
流程图:
错误;刚开始没有在while外面输入一次成绩,循环无法执行
git地址:https://git.coding.net/jike1liuyu/diqizhouzuoye.git
在本周的学习之中我认识到了在循环中要注意判断的使用,若直接在循环中利用判读进行计算可能会导致计算错误,因为循环使得一个数被多次计算。
应该重设一个变量,使得判断计算可以跳出循环后再计算。
难点是循环和判断的混合使用和循环套循环的使用
史泽文;http://www.cnblogs.com/shilcz/p/7856505.html