题目7-3求交错序列前N项和
1.实验代码
#include<stdio.h>
#include<math.h>
int main()
{
int N,i;
int a=1,b=1;
double s=0;
scanf("%d",&N);
for(i=1;i<=N;i++)
{s+=1.0*a/b*pow(-1,i+1);
a++;
b=2*a-1;}
printf("%.3lf",s);
}
2.设计思路
(1)算法
一:定义变量N,i,a,b其中a,b分别为分子,分母变化的值,再定义结果s,因为需要循环,故先定义s=0,输入正整数N。
二:通过for循环结构来计算到N的序列的和,其中每次循环计算s通过-1的不同次幂来控制s的正负,每次循环a都会+1,b=2*a-1。
三:当i的值循环到N时结束循环,此时s的值符合题目,输出,%.3lf保留三位小数。
(2)流程图
3.问题
本题未遇到问题。
4.提交列表
题目7-5 统计学生平均成绩与及格人数
1.实验代码
#include<stdio.h>
int main()
{
int score,count,i,n;
double total;
total=0;
count=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&score);
total+=score;
if(score>=60)
{count++;}
}
if(n==0)
{printf("average = 0.0
");}
else
printf("average = %.1lf
",total/n);
printf("count = %d",count);
}
2.设计思路
(1)算法
一:定义变量score为输入时各位学生的成绩,count为输出时及格人数,total为成绩总数,i,n(学生人数)。total和count因之后需要通过循环取值,故起始定义为0,从0开始。
二:使用for循环,循环输入各个学生的成绩,每次循环都会将成绩加在一起,并且在每次输入的成绩大于等于60时将count加一,来计算及格人数。
三:当所有学生成绩输完,即循环结束时,得到最终的total值以及count值。
四:在输出时应注意,如果输入的n为0时,代表没有学生成绩需要统计,故输出平均值为零且不输出及格人数。如果n不等于零,则正常按格式输出。这里用到了之前学的if语句来分情况输出。输出中平均值为total/n(总成绩除以学生总数)。
(2)流程图
3.问题
没有想到没有学生时的情况,题目部分正确,通过错误提示改正。
4.提交列表
我的git地址: https://git.coding.net/ZJY15/ZJY15.git
上传截图
个人总结
本周主要学习和练习了循环的两种结构(for结构和while/do while结构)。个人感觉在循环具体结构上还不太熟练,应勤加练习。
互评与进度
互评:
赵寅胜 http://www.cnblogs.com/2017023960ZYS/p/7858338.html
徐铭博 http://www.cnblogs.com/xmb1547828350/p/7819731.html
丰大为 http://www.cnblogs.com/DavidPark/p/7846082.html