分数加减法

来源:互联网 发布:手机淘宝分销管理 编辑:程序博客网 时间:2024/04/29 11:05

分数加减法

时间限制:3000 ms  |  内存限制:65535 KB

难度:2

描述

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

输入

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

数据以EOF结束 
输入数据保证合法

输出

对于输入数据的每一行输出两个分数的运算结果。 
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数

样例输入

1/8+3/8

1/4-1/2

1/3-1/3

样例输出

1/2

-1/4

0

来源

水题比赛

上传者

hzyqazasdf

#include<stdio.h>

int isdiviser(int a,int b){

int i,k=0;

if(a<0) a=-a;

for(i=2;i<=b;i++)

{

if(a%i==0&&b%i==0)

k=i;

}

if(k!=0) return k;

return 1;

}

int main(){

int b,c,d,e;

char a[7];

while(scanf("%s",a)!=EOF)

{

b=(a[0]-'0')*(a[6]-'0');

c=(a[4]-'0')*(a[2]-'0');

e=(a[2]-'0')*(a[6]-'0');

if(a[3]=='+')

{

d=b+c;

}

else if(a[3]=='-')

{

d=b-c;

}

if(d%e==0)printf("%d\n",d/e);

else printf("%d/%d\n",d/isdiviser(d,e),e/isdiviser(d,e));

}

return 0 ;

}

原创粉丝点击