从键盘输入两个分数(形式为分子/分母),将它们相加后,输出结果 用c语言写
时间: 2025-09-05 10:14:28 AIGC 浏览: 4
以下是几种用C语言实现输入两个以分子/分母形式表示的分数并将它们相加后输出结果的程序示例:
### 示例1:不化简结果
```c
#include <stdio.h>
int main() {
int numerator1, numerator2; // 定义分子
int denominator1, denominator2; // 定义分母
int numerator = 0;
int denominator = 0;
printf("Please input two fractions(Separate with \",\"): ");
scanf("%d/%d, %d/%d", &numerator1, &denominator1, &numerator2, &denominator2);
numerator = numerator1 * denominator2 + numerator2 * denominator1; // 最后分数的分子
denominator = denominator1 * denominator2; // 最后分数的分母
printf("result = %d/%d\n", numerator, denominator);
return 0;
}
```
此示例从用户输入中读取两个分数,通过交叉相乘再相加的方式计算分子,分母则是两个分母直接相乘,最后输出相加后的分数结果,不进行化简操作[^2]。
### 示例2:化简结果
```c
#include <stdio.h>
// 求最大公约数(Greatest Common Divisor)
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int main() {
int a1, a2, b1, b2, c1, c2;
scanf("%d/%d+%d/%d", &a1, &a2, &b1, &b2); // 读入两个分数
c2 = a2 * b2; // 进行通分
c1 = c2 / a2 * a1 + c2 / b2 * b1;
int t = gcd(c1, c2); // 用最大公约数t进行约分得到最简式
c1 /= t;
c2 /= t;
printf("%d/%d+%d/%d=%d/%d", a1, a2, b1, b2, c1, c2);
return 0;
}
```
该示例在计算出相加后的分数后,通过递归函数`gcd`求出分子和分母的最大公约数,然后对结果进行约分,最终输出最简分数形式的结果[^3]。
阅读全文
相关推荐




















