C语言通分比较分数大小
时间: 2023-06-28 13:06:00 浏览: 135
要比较两个分数的大小,需要将它们通分,然后比较分子的大小。以下是一段 C 语言代码,可以实现通分比较分数大小的功能:
```c
#include <stdio.h>
// 辗转相除法求最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int a1, b1, a2, b2;
printf("请输入两个分数(形如 a/b c/d):");
scanf("%d/%d %d/%d", &a1, &b1, &a2, &b2);
// 通分
int lcm = b1 * b2 / gcd(b1, b2);
a1 = a1 * (lcm / b1);
a2 = a2 * (lcm / b2);
// 比较分子大小
if (a1 > a2) {
printf("第一个分数大于第二个分数\n");
} else if (a1 < a2) {
printf("第一个分数小于第二个分数\n");
} else {
printf("两个分数相等\n");
}
return 0;
}
```
以上代码中,`gcd` 函数使用辗转相除法求两个数的最大公约数。在主函数中,首先读入两个分数,然后求出它们的最小公倍数(即两个分母的乘积除以它们的最大公约数),并将分子通分。最后比较两个分数的分子大小即可。
阅读全文