在c 中分数不是预先定义的,需建立一个分数类
时间: 2024-02-05 15:11:32 浏览: 17
在 C 语言中,没有类的概念,因此无法直接建立一个分数类。但是,可以使用结构体来模拟分数类的实现。
例如,可以定义一个名为 `Fraction` 的结构体,其中包含两个整型成员变量 `numerator` 和 `denominator`,分别表示分数的分子和分母:
```c
struct Fraction {
int numerator;
int denominator;
};
```
然后可以定义一些操作分数的函数,例如计算两个分数的和、差、积、商等等。下面是一个示例程序,演示了如何使用结构体来实现分数类:
```c
#include <stdio.h>
struct Fraction {
int numerator;
int denominator;
};
struct Fraction add(struct Fraction a, struct Fraction b) {
struct Fraction result;
result.numerator = a.numerator * b.denominator + b.numerator * a.denominator;
result.denominator = a.denominator * b.denominator;
return result;
}
struct Fraction subtract(struct Fraction a, struct Fraction b) {
struct Fraction result;
result.numerator = a.numerator * b.denominator - b.numerator * a.denominator;
result.denominator = a.denominator * b.denominator;
return result;
}
struct Fraction multiply(struct Fraction a, struct Fraction b) {
struct Fraction result;
result.numerator = a.numerator * b.numerator;
result.denominator = a.denominator * b.denominator;
return result;
}
struct Fraction divide(struct Fraction a, struct Fraction b) {
struct Fraction result;
result.numerator = a.numerator * b.denominator;
result.denominator = a.denominator * b.numerator;
return result;
}
int main() {
struct Fraction a = {1, 2};
struct Fraction b = {3, 4};
struct Fraction sum = add(a, b);
struct Fraction difference = subtract(a, b);
struct Fraction product = multiply(a, b);
struct Fraction quotient = divide(a, b);
printf("a + b = %d/%d\n", sum.numerator, sum.denominator);
printf("a - b = %d/%d\n", difference.numerator, difference.denominator);
printf("a * b = %d/%d\n", product.numerator, product.denominator);
printf("a / b = %d/%d\n", quotient.numerator, quotient.denominator);
return 0;
}
```
运行上述程序,将输出以下结果:
```
a + b = 5/4
a - b = -1/4
a * b = 3/8
a / b = 2/3
```