1. 程式人生 > >05-1. 約分最簡分式(15)

05-1. 約分最簡分式(15)

分數可以表示為“分子/分母”的形式。編寫一個程式,要求使用者輸入一個分數,然後將其約分為最簡分式。最簡分式是指分子和分母不具有可以約分的成分了。如6/12可以被約分為1/2。當分子大於分母時,不需要表達為整數又分數的形式,即11/8還是11/8;而當分子分母相等時,仍然表達為1/1的分數形式。

輸入格式:

輸入在一行中給出一個分數,分子和分母中間以斜槓“/”分隔,如: 12/34 表示34分之12。分子和分母都是正整數(不包含0,如果不清楚正整數的定義的話)。

提示:在scanf的格式字串中加入“/”,讓scanf來處理這個斜槓。

輸出格式:

在一行中輸出這個分數對應的最簡分式,格式與輸入的相同,即採用“分子/分母”的形式表示分數。如 5/6

表示6分之5。

輸入樣例:
60/120
輸出樣例:
1/2
#include<stdio.h>
void divisor(int *a,int  *b)
{
	int max;
	for (max = (*a <= *b) ? *a : *b; max >= 1; max--)
	{
		if (*a % max == 0 && *b % max == 0)
		{
			break;
		}
	}
	*a /= max;
	*b /= max;
}
int main()
{
	int a, b;
	scanf("%d/%d", &a, &b);
	divisor(&a, &b);
	printf("%d/%d", a, b);
	return 0;
}