写一个程序,实现分数相加。用户以分子/分母的形式输入分数,程序打印相加后的结果(化为最简分数)。
时间: 2024-04-11 15:28:26 浏览: 222
好的,下面是一个使用C语言编写的分数相加程序:
```c
#include <stdio.h>
// 定义分数结构体
typedef struct {
int numerator; // 分子
int denominator; // 分母
} Fraction;
// 计算最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 将分数化简为最简分数
Fraction simplifyFraction(Fraction frac) {
int divisor = gcd(frac.numerator, frac.denominator);
frac.numerator /= divisor;
frac.denominator /= divisor;
return frac;
}
// 分数相加
Fraction addFractions(Fraction frac1, Fraction frac2) {
Fraction result;
result.numerator = frac1.numerator * frac2.denominator + frac2.numerator * frac1.denominator;
result.denominator = frac1.denominator * frac2.denominator;
return simplifyFraction(result);
}
int main() {
Fraction frac1, frac2;
// 获取用户输入的第一个分数
printf("请输入第一个分数(以分子/分母的形式):");
scanf("%d/%d", &frac1.numerator, &frac1.denominator);
// 获取用户输入的第二个分数
printf("请输入第二个分数(以分子/分母的形式):");
scanf("%d/%d", &frac2.numerator, &frac2.denominator);
// 分数相加并打印结果
Fraction result = addFractions(frac1, frac2);
printf("相加结果为:%d/%d\n", result.numerator, result.denominator);
return 0;
}
```
这个程序使用了分数结构体来表示分数,通过计算最大公约数将分数化简为最简形式。用户可以依次输入两个分数,程序会将它们相加并打印结果。
请注意,这个程序没有对除数为0的情况进行处理,也没有对输入的格式进行严格的验证。在实际应用中,你可能需要进一步完善程序,以处理更多的错误和边界情况。
阅读全文