标签: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时,只输出分子
标签:iostream else 形式 while include lag mes 数加 return
原文地址:https://www.cnblogs.com/huanya/p/9376887.html