7-35 有理數均值(20 分)
本題要求編寫程式,計算n個有理數的平均值。
輸入第一行給出正整數n(≤100);第二行中按照a1/b1 a2/b2 …
的格式給出n個分數形式的有理數,其中分子和分母全是整形範圍內的整數;如果是負數,則負號一定出現在最前面。
在一行中按照a/b
的格式輸出n個有理數的平均值。注意必須是該有理數的最簡分數形式,若分母為1,則只輸出分子。
4
1/2 1/6 3/6 -5/10
1/6
2
4/3 2/3
1
思路:每輸出乙個數將其化成最簡分數,防止溢位,輸入完數以後分母乘n,在在進行一次化簡;在輸出的時候考慮分子等於零的情況,這是乙個測試點;還要考慮分母等於零的情況。
#include#include#include
#include
using
namespace
std;
void f(int &a, int &b) //
將兩個數化成最簡分數形式
int flag = a > b ?b : a;
for (int i = flag; i >= 1; i--)
}if (cnt == 1)a *= -1;}
intmain()
b *=n;
f(a, b);
if (a == 0)cout << 0
<< endl; //
這是第四個測試點,千萬記得
else
if (1 == b)cout << a
%d/%d\n
", a, b);
return0;
}
7 35 有理數均值 20point s c
本題要求編寫程式,計算n個有理數的平均值。輸入格式 輸入第一行給出正整數n 100 第二行中按照a1 b1 a2 b2 的格式給出n個分數形式的有理數,其中分子和分母全是整形範圍內的整數 如果是負數,則負號一定出現在最前面。輸出格式 在一行中按照a b的格式輸出n個有理數的平均值。注意必須是該有理數...
有理數均值
本題要求編寫程式,計算n個有理數的平均值。輸入第一行給出正整數n 100 第二行中按照a1 b1 a2 b2 的格式給出n個分數形式的有理數,其中分子和分母全是整形範圍內的整數 如果是負數,則負號一定出現在最前面。在一行中按照a b的格式輸出n個有理數的平均值。注意必須是該有理數的最簡分數形式,若分...
PTA習題 7 35 有理數均值 20分
本題要求編寫程式,計算n個有理數的平均值。輸入格式 輸入第一行給出正整數n 100 第二行中按照a1 b1 a2 b2 的格式給出n個分數形式的有理數,其中分子和分母全是整形範圍內的整數 如果是負數,則負號一定出現在最前面。輸出格式 在一行中按照a b的格式輸出n個有理數的平均值。注意必須是該有理數...