分数的化简

题目:
我们知道分数由分子和分母组成,所以给定你两个整数(可负,可正),第一个代表分子,第二个代表分母。你能不能把他们化为最简单的形式呢?
例如: 输入: -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;}//分母不能为0 if(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); } }

 

posted on 2016-12-12 21:45  wzyy  阅读(1115)  评论(0编辑  收藏  举报