C程序输入两个分数计算它们的加减乘除
时间: 2025-04-03 19:17:19 AIGC 浏览: 70
在C语言中,如果需要计算两个分数的加、减、乘、除运算,可以设计一个程序将分数表示为分子和分母的形式,并通过编写函数分别处理每种运算。
### 程序思路:
1. **结构体定义**:可以用结构体 `Fraction` 来存储每个分数的分子 (`numerator`) 和分母 (`denominator`)。
2. **输入分数**:让用户从键盘输入两个分数。
3. **基本运算实现**:
- 加法公式:`(a/b) + (c/d) = (ad+bc)/(bd)`
- 减法公式:`(a/b) - (c/d) = (ad-bc)/(bd)`
- 乘法公式:`(a/b) * (c/d) = ac/bd`
- 除法公式:`(a/b) / (c/d) = ad/bc`
4. **结果化简**:利用最大公约数(GCD)对分数进行约分化简。
以下是示例代码:
```c
#include <stdio.h>
// 定义分数结构体
typedef struct {
int numerator; // 分子
int denominator; // 分母
} Fraction;
// 计算最大公约数 GCD
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 化简分数
void simplify(Fraction *f) {
int common_divisor = gcd(f->numerator, f->denominator);
f->numerator /= common_divisor;
f->denominator /= common_divisor;
}
// 输出分数
void print_fraction(Fraction f) {
printf("%d/%d\n", f.numerator, f.denominator);
}
// 分数相加
Fraction add_fractions(Fraction f1, Fraction f2) {
Fraction result;
result.numerator = f1.numerator * f2.denominator + f2.numerator * f1.denominator;
result.denominator = f1.denominator * f2.denominator;
simplify(&result); // 结果化简
return result;
}
// 分数相减
Fraction subtract_fractions(Fraction f1, Fraction f2) {
Fraction result;
result.numerator = f1.numerator * f2.denominator - f2.numerator * f1.denominator;
result.denominator = f1.denominator * f2.denominator;
simplify(&result); // 结果化简
return result;
}
// 分数相乘
Fraction multiply_fractions(Fraction f1, Fraction f2) {
Fraction result;
result.numerator = f1.numerator * f2.numerator;
result.denominator = f1.denominator * f2.denominator;
simplify(&result); // 结果化简
return result;
}
// 分数相除
Fraction divide_fractions(Fraction f1, Fraction f2) {
Fraction result;
result.numerator = f1.numerator * f2.denominator;
result.denominator = f1.denominator * f2.numerator;
simplify(&result); // 结果化简
return result;
}
int main() {
Fraction fraction1, fraction2;
printf("请输入第一个分数(格式: 分子/分母): ");
scanf("%d/%d", &fraction1.numerator, &fraction1.denominator);
printf("请输入第二个分数(格式: 分子/分母): ");
scanf("%d/%d", &fraction2.numerator, &fraction2.denominator);
Fraction sum = add_fractions(fraction1, fraction2);
Fraction difference = subtract_fractions(fraction1, fraction2);
Fraction product = multiply_fractions(fraction1, fraction2);
Fraction quotient = divide_fractions(fraction1, fraction2);
printf("\n计算结果:\n");
printf("加法: "); print_fraction(sum);
printf("减法: "); print_fraction(difference);
printf("乘法: "); print_fraction(product);
printf("除法: "); print_fraction(quotient);
return 0;
}
```
运行此代码可以让用户轻松地完成分数之间的四则运算并显示简化后的结果。
阅读全文
相关推荐




















