小学时我们就学习了分数的四则运算,即对两个分数进行加、减、乘、除等运算,现在我们尝试下用C语言来实现。 输入: 分数1 操作符 分数2 输出: 计算结果 要求: 计算结果使用分数表示,并且为最简化。例如结果为2/6,则被简化为1/3
时间: 2024-09-28 08:10:06 浏览: 65
在C语言中,我们可以利用结构体和函数来模拟分数的四则运算。首先,我们需要创建一个结构体来存储分子(numerator)和分母(denominator),然后编写一些函数来进行分数的加法、减法、乘法和除法操作。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义分数结构体
typedef struct {
int numerator;
int denominator;
} Fraction;
// 计算最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 函数:分数相加
Fraction add(Fraction f1, Fraction f2) {
int lcm = f1.denominator * f2.denominator / gcd(f1.denominator, f2.denominator);
f1.numerator *= lcm / f1.denominator;
f2.numerator *= lcm / f2.denominator;
return (f1.numerator + f2.numerator) / lcm;
}
// 其他运算函数类似,这里省略
// 主函数处理用户输入并显示结果
void calculate(char operation, Fraction f1, Fraction f2) {
switch (operation) {
case '+':
printf("%d/%d %c %d/%d = %d/%d\n", f1.numerator, f1.denominator, operation, f2.numerator, f2.denominator, add(f1, f2).numerator, add(f1, f2).denominator);
break;
// 添加其他运算符的情况...
}
}
int main() {
char op[2];
Fraction f1, f2;
// 输入分数
scanf("%d/%d ", &f1.numerator, &f1.denominator);
getchar(); // 移除空格
scanf("%s ", op); // 获取操作符
scanf("%d/%d ", &f2.numerator, &f2.denominator);
calculate(op[0], f1, f2);
return 0;
}
```
运行这个程序,它会根据给定的操作符对两个分数执行相应的运算,并将结果简化为最简形式输出。注意,这个示例仅实现了加法,你需要扩展`add()`函数和其他运算函数来完成整个功能。同时,对于除法操作,需要先判断分母是否为零来防止除以零的错误。
阅读全文