码迷,mamicode.com
首页 > 其他好文 > 详细

南阳oj 分数加减法

时间:2018-07-27 13:10:34      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:iostream   else   形式   while   include   lag   mes   数加   return   

#include<iostream>
#include<stdio.h>
using namespace std;
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
int main ()
{
int a,b,c,d;
char ch1,ch2,ch3;
while(scanf("%d%c%d%c%d%c%d",&a,&ch1,&b,&ch2,&c,&ch3,&d)!=EOF)
{
if(a==0 && c==0)
{
cout<<0<<endl;
}
else
{
int x,y;
int flag=1;
int m,n;
int g;
m=b*d;
if(ch2==‘+‘)
n=a*d+b*c;
else if(ch2==‘-‘)
n=a*d-b*c;
if(n==0)
{
cout<<0<<endl;
continue;
}
if(n<0)
{
flag=0;
n=-n;
}
g=gcd(m,n);
x=n/g;
y=m/g;
if(flag==0)
cout<<"-";
if(y==1)
{
cout<<x<<endl;
}
else
cout<<x<<"/"<<y<<endl;
}
}
return 0;
}

输入的时候,两个除号“/”也要用两个字符变量来表示

对多种情况的判断:

输入两个分子都为零时,结果为零

另外gcd()函数用来求分子分母的最大公因数,然后将分子分母化为最简形式

分母为1时,只输出分子

 

南阳oj 分数加减法

标签:iostream   else   形式   while   include   lag   mes   数加   return   

原文地址:https://www.cnblogs.com/huanya/p/9376887.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!