用C语言写一个程序,实现分数相加。用户以分子/分母的形式输入分数,程序打印相加后的结果(化为最简分数)。
时间: 2024-04-30 20:23:16 浏览: 342
```c
#include <stdio.h>
// 求最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
int main() {
int a1, b1, a2, b2;
printf("请输入第一个分数的分子和分母:");
scanf("%d/%d", &a1, &b1);
printf("请输入第二个分数的分子和分母:");
scanf("%d/%d", &a2, &b2);
int b = b1 * b2; // 通分
int a = a1 * b2 + a2 * b1; // 相加
int gcdab = gcd(a, b); // 求最大公约数
a /= gcdab;
b /= gcdab;
printf("相加后的结果为:%d/%d\n", a, b);
return 0;
}
```
相关问题
写一个程序,实现分数相加。用户以分子/分母的形式输入分数,程序打印相加后的结果(化为最简分数)。
好的,下面是一个使用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的情况进行处理,也没有对输入的格式进行严格的验证。在实际应用中,你可能需要进一步完善程序,以处理更多的错误和边界情况。
用c语言写一个分数相加后输出分数
好的,以下是用C语言写一个分数相加后输出分数的示例代码:
```c
#include <stdio.h>
int main() {
int num1, den1, num2, den2, num3, den3;
printf("请输入第一个分数的分子和分母,中间用空格隔开:");
scanf("%d %d", &num1, &den1);
printf("请输入第二个分数的分子和分母,中间用空格隔开:");
scanf("%d %d", &num2, &den2);
// 求分数相加后的分子和分母
num3 = num1 * den2 + num2 * den1;
den3 = den1 * den2;
// 输出相加后的分数
printf("相加后的分数为:%d/%d", num3, den3);
return 0;
}
```
以上代码会提示用户输入两个分数,然后计算这两个分数相加后的结果,并输出相加后的分数。
阅读全文