您的位置:首页 > 其它

结构-02. 有理数加法

2014-08-25 22:58 155 查看
/*
* Main.c
* F2-结构-02. 有理数加法
*  Created on: 2014年8月25日
********测试通过*********
*/

#include <stdio.h>
/**
* 有理数结构体
*/
struct rationalNumber{
int numerator;
int denominator;
};
/**
* 最大公约数
*/
int greatCommonDivisor(int m,int n){
int i;
for(i=(m<n?m:n);i>1;i--){
if(m%i==0&&n%i==0)
break;
}
return i;
}

int main(void){

struct rationalNumber num1,num2,num3;
scanf("%d/%d %d/%d",&num1.numerator,&num1.denominator,&num2.numerator,&num2.denominator);

//通分求和并赋值于num3
num3.numerator =num1.numerator*num2.denominator + num2.numerator*num1.denominator;
num3.denominator = num1.denominator*num2.denominator;

//约分
int gcd = greatCommonDivisor(num3.numerator,num3.denominator);
num3.numerator/=gcd;
num3.denominator/=gcd;

//输出结果
if(num3.denominator==1)
printf("%d\n",num3.numerator);
else
printf("%d/%d\n",num3.numerator,num3.denominator);

return 0;
}


题目链接:

http://pat.zju.edu.cn/contests/basic-programming/%E7%BB%93%E6%9E%84-02

参考引用:

http://blog.csdn.net/rabbit8848/article/details/30283935

.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: