计算n(n<100)个有理数的平均数并返回,要求输出结果为最简分数形式。
时间: 2023-04-21 18:05:18 浏览: 226
c++面向对象输出最简分数
4星 · 用户满意度95%
要计算n个有理数的平均数,可以先将它们的分子分母分别累加起来,然后再将分子分母分别除以n,得到平均数的分子和分母。最后将分子分母化简为最简分数形式即可。
具体步骤如下:
1. 定义两个变量sum_numerator和sum_denominator,分别用于累加分子和分母,初始值都为。
2. 循环读入n个有理数,每次读入一个有理数,将其分子加到sum_numerator中,将其分母加到sum_denominator中。
3. 计算平均数的分子和分母,分别为average_numerator和average_denominator,公式为:
average_numerator = sum_numerator / n
average_denominator = sum_denominator / n
4. 将平均数的分子和分母化简为最简分数形式,可以先求它们的最大公约数gcd,然后分别除以gcd即可。最大公约数可以用辗转相除法求解。
5. 输出最简分数形式的平均数。
下面是示例代码:
```
#include <iostream>
using namespace std;
// 求最大公约数
int gcd(int a, int b) {
return b == ? a : gcd(b, a % b);
}
int main() {
int n;
cin >> n;
int sum_numerator = , sum_denominator = ;
for (int i = ; i < n; i++) {
int numerator, denominator;
cin >> numerator >> denominator;
sum_numerator += numerator;
sum_denominator += denominator;
}
int average_numerator = sum_numerator / n;
int average_denominator = sum_denominator / n;
// 化简为最简分数形式
int g = gcd(average_numerator, average_denominator);
average_numerator /= g;
average_denominator /= g;
cout << average_numerator << "/" << average_denominator << endl;
return ;
}
```
阅读全文