第七周作业

题目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\n");}
	else
	printf("average = %.1lf\n",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

posted @ 2017-11-19 01:37  张金禹  阅读(191)  评论(0编辑  收藏  举报