PAT 1034 有理數四則運算 20

2021-06-29 08:55:41 字數 1549 閱讀 4680

本題要求編寫程式,計算2個有理數的和、差、積、商。

輸入格式:

輸入在一行中按照「a1/b1 a2/b2」的格式給出兩個分數形式的有理數,其中分子和分母全是整型範圍內的整數,負號只可能出現在分子前,分母不為0。

輸出格式:

分別在4行中按照「有理數1 運算子 有理數2 = 結果」的格式順序輸出2個有理數的和、差、積、商。注意輸出的每個有理數必須是該有理數的最簡形式「k a/b」,其中k是整數部分,a/b是最簡分數部分;若為負數,則須加括號;若除法分母為0,則輸出「inf」。題目保證正確的輸出中沒有超過整型範圍的整數。

輸入樣例1:

2/3 -4/2
輸出樣例1:
2/3 + (-2) = (-1 1/3)

2/3 - (-2) = 2 2/3

2/3 * (-2) = (-1 1/3)

2/3 / (-2) = (-1/3)

輸入樣例2:
5/3 0/6
輸出樣例2:
1 2/3 + 0 = 1 2/3

1 2/3 - 0 = 1 2/3

1 2/3 * 0 = 0

1 2/3 / 0 = inf

輸出不超出整型範圍,不代表中間計算結果也不超出整型數範圍,比如兩個分子相乘什麼的,於是我就用記事本的替換,把int全換成了long long,%d換成了%lld
#include #include long long calgongyueshu(long long m, long long n)

return n;

}void printfenshu (long long fenzi, long long fenmu)

else

else

}}void printexpress(long long fenzi1, long long fenmu1, long long fenzi2, long long fenmu2, char op)

void add(long long fenzi1, long long fenmu1, long long fenzi2, long long fenmu2)

void sub(long long fenzi1, long long fenmu1, long long fenzi2, long long fenmu2)

void mul(long long fenzi1, long long fenmu1, long long fenzi2, long long fenmu2)

void div(long long fenzi1, long long fenmu1, long long fenzi2, long long fenmu2)

printexpress(fenzi1, fenmu1, fenzi2, fenmu2, '/');

if(fenmu != 0)

printfenshu(fenzi, fenmu);

else

printf("inf");

printf("\n");

}int main()

PAT 1034 有理數四則運算

1034 有理數四則運算 20 分 本題要求編寫程式,計算 2 個有理數的和 差 積 商。輸入在一行中按照a1 b1 a2 b2的格式給出兩個分數形式的有理數,其中分子和分母全是整型範圍內的整數,負號只可能出現在分子前,分母不為 0。分別在 4 行中按照有理數1 運算子 有理數2 結果的格式順序輸出...

PAT 1034 有理數四則運算

本題要求編寫程式,計算 2 個有理數的和 差 積 商。輸入格式 輸入在一行中按照 a1 b1 a2 b2 的格式給出兩個分數形式的有理數,其中分子和分母全是整型範圍內的整數,負號只可能出現在分子前,分母不為 0。輸出格式 分別在 4 行中按照 有理數1 運算子 有理數2 結果 的格式順序輸出 2 個...

PAT1034 有理數四則運算 20

本題要求編寫程式,計算2個有理數的和 差 積 商。輸入格式 輸入在一行中按照 a1 b1 a2 b2 的格式給出兩個分數形式的有理數,其中分子和分母全是整型範圍內的整數,負號只可能出現在分子前,分母不為0。輸出格式 分別在4行中按照 有理數1 運算子 有理數2 結果 的格式順序輸出2個有理數的和 差...