如何用C语言实现分数的存储和运算?
时间: 2024-09-26 13:05:06 浏览: 27
在C语言中,由于其基础的数据类型并不直接支持分数,我们可以自定义结构体来存储分数。以下是一个简单的示例:
```c
typedef struct {
int numerator; // 分子
int denominator; // 分母
} Fraction;
// 初始化分数
Fraction create_fraction(int num, int den) {
Fraction f;
f.numerator = num;
f.denominator = den;
return f;
}
// 计算两个分数的加减乘
Fraction add(Fraction f1, Fraction f2) {
int new_num = (f1.numerator * f2.denominator) + (f2.numerator * f1.denominator);
int new_den = f1.denominator * f2.denominator;
return create_fraction(new_num, new_den);
}
// 计算分数的除法,实际上是对分子和分母同时做除法
Fraction divide(Fraction f1, Fraction f2) {
int new_num = f1.numerator * f2.denominator;
int new_den = f1.denominator * f2.numerator;
if (f2.denominator != 0) {
return create_fraction(new_num, new_den);
} else {
return create_fraction(0, 0); // 避免除以零的情况
}
}
阅读全文