标签:style blog io color ar os sp 数据 div
描述
编写一个C程序,实现两个分数的加减法
1 #include <stdio.h> 2 3 int gcd(int a,int b); 4 5 int main(){ 6 int a; 7 int b; 8 int c; 9 int d; 10 char sign; 11 int fenmu; 12 int fenzi; 13 char temp; 14 15 while(scanf("%d/%d%c%d/%d",&a,&b,&sign,&c,&d)!=EOF){ 16 fenmu=b*d/gcd(b,d); 17 18 if(sign==‘+‘) 19 fenzi=a*fenmu/b+c*fenmu/d; 20 21 else 22 fenzi=a*fenmu/b-c*fenmu/d; 23 24 if(fenzi==0){ //分子为0直接输出0 25 printf("0\n"); 26 continue; 27 } 28 29 temp=‘+‘; 30 if(fenzi<0){ //当为负数时,化为正数,标记负号 31 fenzi=-fenzi; 32 temp=‘-‘; 33 } 34 35 if(temp==‘-‘) //有负号时输出负号 36 printf("-"); 37 38 if(fenzi%fenmu==0) //如果整除时直接输出商 39 printf("%d\n",fenzi/fenmu); 40 41 else //不整除时以分数的形式输出 42 printf("%d/%d\n",fenzi/gcd(fenmu,fenzi),fenmu/gcd(fenmu,fenzi)); 43 } 44 return 0; 45 } 46 47 int gcd(int a,int b){ 48 int temp; 49 50 if(a<b){ 51 temp=a; 52 a=b; 53 b=temp; 54 } 55 56 while(a%b!=0){ 57 temp=a%b; 58 a=b; 59 b=temp; 60 } 61 62 return b; 63 }
标签:style blog io color ar os sp 数据 div
原文地址:http://www.cnblogs.com/zqxLonely/p/4097635.html