时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
给出一组样本数据,包含n个浮点数,计算其均值,精确到小数点后4位。
【输入】
输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。
【输出】
输出一行,包含一个浮点数,表示均值,精确到小数点后4位。
【输入样例】
2
1.0 3.0
【输出样例】
2.0000
主要是输入数据的类型不一样,除了n,其他输入数据是浮点型,在计算均值时,就无需考虑类型问题了。
数据类型:
除了n是整数外,其他都是浮点数,且数据范围都较小,n可以选择int类型,其他数据选择double类型。
求解过程:
声明1个int类型变量n,代表样本容量。
声明2个double类型变量sample、sum = 0,分别样本数据、样本总和。
输入一个整数给变量n,代表样本容量。
循环n次,循环体中:
1.输入一个样本数据
2.把该样本数据加入到sum中
循环外,声明一个double类型变量aver,代表均值。
根据平均值公式求得均值,并保存在aver变量中。
输出均值变量aver的值,并保留小数点后4位数。
参考代码 - C++:
一般变量命名都采用单词的方式,当规模较大,变量较多时,用单词命名比用字母命名更加让人一眼看明白。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n;
double age, sum = 0;
cin >> n;
for (int i = 1; i <= n; i++) // 循环n次
{
cin >> age; // 每循环一次输入一个样本数据
sum += age; // 求所有样本数据之和
}
double aver = sum / n; // 求均值
cout << fixed << setprecision(4) << aver;
return 0;
}
参考代码 - C语言:
#include <stdio.h>
int main()
{
int n, i;
double sample, sum = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++) // 循环n次
{
scanf("%lf", &sample); // 每循环一次输入一个样本数据
sum += sample; // 求所有样本数据之和
}
double aver = sum / n; // 求均值
printf("%.4f", aver);
return 0;
}