PAT-有理数加法(基础编程题)

本题要求编写程序,计算两个有理数的和。

输入格式:

输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。

输出格式:

在一行中按照a/b的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。

输入样例1:

1/3 1/6

输出样例1:

1/2

输入样例2:

4/3 2/3

输出样例2:

2
//有理数的加法

#include <stdio.h>
int main()
{
	int a,B,c,D;
	char c1,c2;
	int fenzi,fenmu;
	scanf("%d %c %d %d %c %d",&a,&c1,&B,&c,&c2,&D);
	fenzi=a*D+c*B;
	fenmu=B*D;
	 
	//求分子分母最大公约数,辗转相除法
	int i,j,mark;
	i= fenzi;
	j= fenmu;
 
 	while(j!=0){
 		mark= i%j;
 		i=j;
 		j=mark;
	 
	 	
	}
	  
	 fenzi=fenzi/i;
	 fenmu=fenmu/i;
	  //printf("%d/%d\n",fenzi,fenmu);
	if(fenmu==1)
		printf("%d",fenzi);
		
	else
		printf("%d/%d",fenzi,fenmu);
	
	return 0;
} 

原创文章 50 获赞 33 访问量 24万+

猜你喜欢

转载自blog.csdn.net/qiulh125/article/details/50426565