最簡分式(10分) 最簡分式(10分) 題目內容: 分數可以表示為“分子/分母”的形式。編寫一個程式,要求用戶輸入一個分數,然後將其約分為最簡分式。最簡分式是指分子和分母不具有可以約分的成分了。如6/12可以被約分為1/2。當分子大於分母時,不需要表達為整數又分數的形式,即11/8還是11/8;而當 ...
最簡分式(10分)
題目內容:
分數可以表示為“分子/分母”的形式。編寫一個程式,要求用戶輸入一個分數,然後將其約分為最簡分式。最簡分式是指分子和分母不具有可以約分的成分了。如6/12可以被約分為1/2。當分子大於分母時,不需要表達為整數又分數的形式,即11/8還是11/8;而當分子分母相等時,仍然表達為1/1的分數形式。
輸入格式:
輸入在一行中給出一個分數,分子和分母中間以斜杠“/”分隔,如: 12/34 表示34分之12。分子和分母都是正整數(不包含0)。
提示:在scnaf的格式字元串中加入“/”。
輸出格式:
在一行中輸出這個分數對應的最簡分式,格式與輸入的相同,即採用“分子/分母”的形式表示分數。如 5/6 表示 6分之5
輸入樣例:
60/120
輸出樣例:
1/2
#include <stdio.h>
int
cacu(
int
a,
int
b){
//此函數傳入分子a和分母b,返回最大公約數
int
temp;
while
(b!=0)
{
temp=a%b;
a=b;
b=temp;
}
return
a;
}
int
main()
{
int
a, b;
scanf
(
"%d/%d"
, &a, &b);
int
c = cacu(a,b);
a /= c;
b /= c;
printf
(
"%d/%d\n"
, a, b);
return
0;
}