C语言 分数加减运算

#include<stdio.h>
#include<math.h>

char s[100];

int lcm(int n,int m){       //构建求得最小公倍数的函数
 
 int i;
 
 for(i = n; i <= n*m; i = i + n){
  
  if(i % m == 0)  break;
 }
 return i;
}

int main(){
 
 int a,b,c,d,t,k,m;
 char o,ch,c1;
 
 while(scanf("%d%c%d%c%d%c%d",&a,&ch,&b,&o,&c,&c1,&d) != EOF){
  t = lcm(b,d);
  a = a * (t / b);
  c = c * (t / d);
  b = d = t;
  if(o == '+') k = a + c;
  if(o == '-') k = a - c;
  if(k == 0) printf("0\n");
  else{
   m = (fabs(k) * fabs(t)) / lcm(fabs(k),fabs(t));
   k = k / m;
   t = t / m;
   printf("%d%c%d\n",k,ch,t);
  }
 }
 return 0;
}

猜你喜欢

转载自blog.csdn.net/chen1042246612/article/details/81289173