题目概述
N 个正数的算数平均是这些数的和除以 N,它们的调和平均是它们倒数的算数平均的倒数。本题就请你计算给定的一系列正数的调和平均值。
输入格式:
每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N (≤1000);第 2 行给出 N 个正数,都在区间 [0.1,100] 内。
输出格式:
在一行中输出给定数列的调和平均值,输出小数点后2位。
输入样例:
8
10 15 12.7 0.3 4 13 1 15.6
输出样例:
1.61
代码:
方法1:利用m--来确定读入的整数个数,注意不要在用n表示读入整数个数的时候把n的值改变所以用m来代表输入的整数个数。
#include <cstdio>
int main()
{
int n,m;
float a,sum=0;
scanf("%d",&n);
m=n;
while(m--)
{
scanf("%f", &a);
sum+=1/a;
}
printf("%.2f",n/sum);
return 0;
}
方法二:利用~scanf("%f", &a)判断读入整数的最后一个数
#include <cstdio>
int main()
{
int n;
scanf("%d", &n);
float a, sum = 0;
while(~scanf("%f", &a))
{
sum += 1 / a;
}
printf("%.2f\n", n / sum);
return 0;
}