当前位置:首页 > 行业动态 > 正文

c语言中 分式怎么表示

在C语言中,分式通常表示为两个整数的比值,为了处理分式,我们可以使用结构体来存储分子和分母,并通过编写相应的函数来实现分式的加法、减法、乘法等操作,下面是一个简单的示例,演示如何在C语言中表示和操作分式。

我们定义一个名为Fraction的结构体,用于存储分式的分子和分母:

typedef struct {
    int numerator; // 分子
    int denominator; // 分母
} Fraction;

接下来,我们需要实现一些基本的分式操作函数,以下是一些常用的分式操作函数:

1、创建分式

Fraction createFraction(int num, int den) {
    Fraction f;
    f.numerator = num;
    f.denominator = den;
    return f;
}

2、约分分式

void reduceFraction(Fraction *f) {
    int gcd = findGCD(f>numerator, f>denominator);
    f>numerator /= gcd;
    f>denominator /= gcd;
}
int findGCD(int a, int b) {
    if (b == 0) {
        return a;
    } else {
        return findGCD(b, a % b);
    }
}

3、打印分式

void printFraction(const Fraction *f) {
    printf("%d/%d", f>numerator, f>denominator);
}

4、分式加法

Fraction addFractions(const Fraction *f1, const Fraction *f2) {
    Fraction result;
    result.numerator = f1>numerator * f2>denominator + f2>numerator * f1>denominator;
    result.denominator = f1>denominator * f2>denominator;
    reduceFraction(&result);
    return result;
}

5、分式减法

Fraction subtractFractions(const Fraction *f1, const Fraction *f2) {
    Fraction result;
    result.numerator = f1>numerator * f2>denominator f2>numerator * f1>denominator;
    result.denominator = f1>denominator * f2>denominator;
    reduceFraction(&result);
    return result;
}

6、分式乘法

Fraction multiplyFractions(const Fraction *f1, const Fraction *f2) {
    Fraction result;
    result.numerator = f1>numerator * f2>numerator;
    result.denominator = f1>denominator * f2>denominator;
    reduceFraction(&result);
    return result;
}

7、分式除法

Fraction divideFractions(const Fraction *f1, const Fraction *f2) {
    Fraction result;
    result.numerator = f1>numerator * f2>denominator;
    result.denominator = f1>denominator * f2>numerator;
    reduceFraction(&result);
    return result;
}

现在,我们可以使用这些函数来表示和操作分式,以下代码创建了两个分式,并执行了加法、减法、乘法和除法操作:

#include <stdio.h>
int main() {
    Fraction f1 = createFraction(3, 4); // 3/4
    Fraction f2 = createFraction(1, 2); // 1/2
    reduceFraction(&f1); // 约分 f1 为 3/4
    reduceFraction(&f2); // 约分 f2 为 1/2
    printFraction(&f1); // 输出 f1: 3/4
    printFraction(&f2); // 输出 f2: 1/2
    Fraction f3 = addFractions(&f1, &f2); // 计算 f1 + f2
    printFraction(&f3); // 输出 f3: 5/4
    Fraction f4 = subtractFractions(&f1, &f2); // 计算 f1 f2
    printFraction(&f4); // 输出 f4: 1/4
    Fraction f5 = multiplyFractions(&f1, &f2); // 计算 f1 * f2
    printFraction(&f5); // 输出 f5: 3/8
    Fraction f6 = divideFractions(&f1, &f2); // 计算 f1 / f2
    printFraction(&f6); // 输出 f6: 6/4 (约分为 3/2)
    return 0;
}

这个简单的示例展示了如何在C语言中表示和操作分式,你可以根据需要扩展这些函数,以支持更复杂的分式操作。

0