首页 > 代码库 > 分数加减法

分数加减法

描述编写一个C程序,实现两个分数的加减法

 
输入
输入包含多行数据 
每行数据是一个字符串,格式是"a/boc/d"。 
其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。 

数据以EOF结束 
输入数据保证合法
输出
对于输入数据的每一行输出两个分数的运算结果。 
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数
样例输入
1/8+3/81/4-1/21/3-1/3
样例输出
1/2-1/40

 1 import java.text.NumberFormat; 2 import java.util.Arrays; 3 import java.util.Scanner; 4  5 public class Main { 6     public static void main(String[] args) { 7         Scanner scanner=new Scanner(System.in); 8         char input[]=new char[7]; 9         char sign;10         int a;11         int b;12         int c;13         int d;14         int fenMu;15         int fenZi;16         int flag;17         int temp;18         19         while(scanner.hasNext()){20             input=scanner.next().toCharArray();21             22             sign=input[3];23             a=input[0]-‘0‘;24             b=input[2]-‘0‘;25             c=input[4]-‘0‘;26             d=input[6]-‘0‘;27             28             fenMu=b*d/gcd(b,d);29             30             if(sign==‘+‘)31                 fenZi=fenMu/b*a+fenMu/d*c;32             33             else34                 fenZi=fenMu/b*a-fenMu/d*c;35             36             if(fenZi==0){37                 System.out.println("0");38                 continue;39             }40             41             if(fenZi<0){42                 System.out.print("-");43                 fenZi=-fenZi;44             }45             46             if(fenZi%fenMu==0)47                 System.out.println(fenZi/fenMu);48             49             else{50                 temp=gcd(fenZi,fenMu);51                 System.out.println(fenZi/temp+"/"+fenMu/temp);52             }53         }54     } 55     56     static int gcd(int a,int b){57         int temp;58         59         if(a<b){60             temp=a;61             a=b;62             b=temp;63         }64         65         while(a%b!=0){66             temp=a%b;67             a=b;68             b=temp;69         }70         71         return b;72     }73 }

 

 

分数加减法