1059:求平均年龄

【题目描述】
班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。

【输入】
第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有1个整数,表示每个学生的年龄,取值为15到25。

【输出】
输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。

【输入样例】
2
18
17
【输出样例】
17.50
题目分析:
本题运用循环就和,做题之前先搞清楚解题思路,题目要求有n名同学,每一名同学的年龄都需要输入,很明显要输入n次,这里我们就有了重复n次的for循环

#include<iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		
	}
	return 0;
}

然后思考在循环里要做什么事,需要输入每名同学的年龄,我们来进一步完善代码

#include<iostream>
using namespace std;
int main(){
	int n,a;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a;
	}
	return 0;
}

到了这里有的同学就会有疑问,这样输入同学的成绩,会把结果都输入到变量a里面去,变量又只会存储最后一个成绩,这样是没意义的。这里先不要急,题目还有什么要求,
我们要求平均值,我们知道平均值 = 总数除以个数,这里我么的问题就转变了,从求平均值变成求总和,怎么求呢,这里我们每循环一次都会输入一次学生的年龄,那么我
们在加一句话sum = sum + a;让每次输入的年龄a都存储到sum这个求和变量中,并且每次都会给变量a一个全新的年龄,那么sum每次加的值都是不一样的,最终循环结束
时,sum里面存放的就是n名学生的年龄总和,最后输出的时候用sum除以n即可

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	int n,a;
	double sum=0;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a;
		sum=sum+a;
	}
	printf("%.2lf",sum/n);
	return 0;
}
posted @ 2021-12-03 16:03  MacToT  阅读(2693)  评论(0编辑  收藏  举报