C言語で複素数の加算、減算、乗算、除算を実装する方法

複素数の足し算、引き算、掛け算、割り算をC言語で行うには、最初に構造体を定義して複素数を表し、次にそれぞれの計算を実行する関数を記述します。

これはその例になります。

#include <stdio.h>

// 定义复数结构体
typedef struct {
    double real;     // 实部
    double imaginary;  // 虚部
} Complex;

// 复数加法
Complex add(Complex a, Complex b) {
    Complex result;
    result.real = a.real + b.real;
    result.imaginary = a.imaginary + b.imaginary;
    return result;
}

// 复数减法
Complex subtract(Complex a, Complex b) {
    Complex result;
    result.real = a.real - b.real;
    result.imaginary = a.imaginary - b.imaginary;
    return result;
}

// 复数乘法
Complex multiply(Complex a, Complex b) {
    Complex result;
    result.real = a.real * b.real - a.imaginary * b.imaginary;
    result.imaginary = a.real * b.imaginary + a.imaginary * b.real;
    return result;
}

// 复数除法
Complex divide(Complex a, Complex b) {
    Complex result;
    double denominator = b.real * b.real + b.imaginary * b.imaginary;
    result.real = (a.real * b.real + a.imaginary * b.imaginary) / denominator;
    result.imaginary = (a.imaginary * b.real - a.real * b.imaginary) / denominator;
    return result;
}

// 测试函数
int main() {
    Complex a = {1.0, 2.0};
    Complex b = {3.0, 4.0};

    Complex sum = add(a, b);
    printf("Sum: %lf + %lfi\n", sum.real, sum.imaginary);

    Complex difference = subtract(a, b);
    printf("Difference: %lf + %lfi\n", difference.real, difference.imaginary);

    Complex product = multiply(a, b);
    printf("Product: %lf + %lfi\n", product.real, product.imaginary);

    Complex quotient = divide(a, b);
    printf("Quotient: %lf + %lfi\n", quotient.real, quotient.imaginary);

    return 0;
}

この例では、複素数を表す構造体を実部と虚部に使用しました。次に、複素数の加算、減算、乗算、除算を実行する 4 つの関数を記述しました。主関数では、2 つの複素数 a と b を定義し、4 つの関数で加算、減算、乗算、除算を行い、結果を出力しました。

実際の事例では、もっと多くのエラー処理や境界事態の考慮が必要であるが、単なるシンプルな例なので気をつけて。

bannerAds