第七周作业
#题目7-3:
*代码:
#include <stdio.h> int main () { int N,i=1; double sum=0; scanf("%d",&N); while(i<=N){ if(i%2==0) {sum=sum-i/(2.0*i-1.0);} else {sum=sum+i/(2.0*i-1.0);} i=i+1; }printf("%.3f",sum); return 0; }
*设计思路:
第一步:先仔细阅读题目要求,打好基本框架。
第二步:想到需要循环语句,又看到是交错序列,每个分数前都有规律地变化正负符号,所以我采用了while if 语句,用条件来解决正负变换。
第三步:根据i这个循环变值来当条件,若“i%2==0”,则实行负项,否则实行正项。
第四步:根据题目输出格式的要求,输出sum是保留三位小数,“%。3f”。
第五步:完成编译,运行。
*流程图:
*错误截图:
*遇到的问题及解决方法:
看到这样的的回车结果,答案是1.000,看题目所要的输出结果是0.917,我就知道了应该是精度的关系,将单精度float改为双精度double和while内容中1和2都改为1.0和2.0,在运行编译,就是所要的结果了。
*pta上传截图:
#
#题目7-5“
*代码:
#include <stdio.h> int main(){ int i,n; double a = 0,b; int count=0; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%lf",&b); if (b>=60) count=count+1; a=a+b; } if(n==0) printf("average = 0.0\n"); else printf("average = %.1f\n",a/n); printf("count = %d",count); return 0; }
*设计思路:
第一步:先仔细阅读题目,打好基本框架。
第二步:定义整数型i和学生人数n以及及格人数count,因为学生的平均成绩可能会出现小数,所以定义双精度函数,学生的总成绩a,学生的成绩b。
第三步:因为每个学生都得和及格线比较,所以我用来for语句来完成循环并完成for语句里的常规代码。倘若有学生成绩高于60分,count便会加上1。
第四步:在最后输出阶段,加上当学生的人数为0人时的情况。
第五步:完成编译,运行。
*流程图:
*错误截图:
*问题以及解决方法:
输入n的值为5时,按下回车键后出现这样的提示,我就知道我在定义n时忘加上了”&“,加上后便正常运行了。
*pta上传截图:
#coding.net上传截图:
*git地址:
https://git.coding.net/lxtyichan/lxthaerbin.git
#*个人总结:
本周循环语句,如while,do while,for,以及break语句,并规范了循环语句的流程图画法,受益匪浅。
*所学难点:pta中一些题用循环语句比较难,如13周PTA作业的编程题中的第三题,在老师的指点下猜搞懂一些。flag的用法。
#表格以及折线图:
#评论人的链接:
马天琦:
www.cnblogs.com/simalang/p/7846102.html
李志琦:
http://www.cnblogs.com/100200a/p/7852396.html
林梦:
www.cnblogs.com/lin2580/p/7841437.html