View Code of Problem 3494

#include<stdio.h>
#include<string.h>
#include<math.h>
#define prt printf
int f(int a,int b)
{
	int c;
	while( b!=0 )
	{
		c=a%b;
		a=b;
		b=c;
	}
	return a;
}
int main()
{
	int a,b,c,d,flag;
	char ch;
	int fenzi,fenmu,gcd;
	while( scanf("%d/%d%c%d/%d",&a,&b,&ch,&c,&d) != EOF)
	{
		//直接开始处理
		flag=1;
		
		if( ch=='+')
		{
			fenzi=abs(a*d + b*c);
			
		}else if( ch=='-')
		{
			fenzi=abs(a*d - b*c);
			if( a*d - b*c < 0 )
			flag=0;
		}
		gcd=f(fenzi,b*d);
		fenzi/=gcd;
		fenmu=b*d/gcd;
		if( flag == 0 )prt("-");
		if( fenzi == fenmu && fenzi != 0 )
		{
			prt("1\n");
		}else if( fenzi == 0 )
		{
			prt("0\n");
		}else prt("%d/%d\n",fenzi,fenmu);	
		
			
	}

	return 0;
}

/*
Main.cc: In function `int main()':
Main.cc:29: error: `abs' undeclared (first use this function)
Main.cc:29: error: (Each undeclared identifier is reported only once for each function it appears in.)
*/

Double click to view unformatted code.


Back to problem 3494