请编写函数,完成有理数的乘法。 函数原型 FRACTION FractionMul(const FRACTION *x, const FRACTION *y);
时间: 2024-03-20 22:39:31 浏览: 59
好的,以下是函数的实现代码:
```
typedef struct {
int numerator; // 分子
int denominator; // 分母
} FRACTION;
// 求两个整数的最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 求两个整数的最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
// 有理数乘法
FRACTION FractionMul(const FRACTION *x, const FRACTION *y) {
FRACTION result;
result.numerator = x->numerator * y->numerator;
result.denominator = x->denominator * y->denominator;
int common = gcd(result.numerator, result.denominator);
result.numerator /= common;
result.denominator /= common;
return result;
}
```
使用方法:
1. 定义两个有理数 `FRACTION a, b;` 并初始化它们的分子和分母;
2. 调用函数 `FRACTION result = FractionMul(&a, &b);` 进行乘法计算,得到结果 `result`。
注意事项:
1. 由于有理数的分母不为0,所以在使用时需要确保分母不为0;
2. 这里的有理数结构体采用了分子和分母两个整数来表示,因此需要在使用时手动进行约分。
阅读全文