首页 > 代码库 > 分数的化简

分数的化简

题目:
我们知道分数由分子和分母组成,所以给定你两个整数(可负,可正),第一个代表分子,第二个代表分母。你能不能把他们化为最简单的形式呢?
例如: 输入: -4 8 ; 输出:-1/2

void
main(){int a,b;int i=1;int flag=i;//最大公约数int flag2=0;//a,b中负号的个数scanf("%d %d",&a,&b);if(b == 0){return;}//分母不能为0if(a == 0){//分子为0时,结果是0 printf("%d/%d = %d\n",a,b,0); return ;}if(a<0){ flag2++; a = -a;}if(b<0){ flag2++; b = -b;}while( i <= (a>b?b:a) ){ if(a%i==0 && b%i==0){ flag = i;//找到能被a,b整除的数 } ++i;}printf("最大公约数是:%d\n",flag);if(flag2 == 1){ printf(" -%d/%d\n",a/flag,b/flag);}else{ printf(" %d/%d\n",a/flag,b/flag);}}

 

分数的化简