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 つの関数で加算、減算、乗算、除算を行い、結果を出力しました。
実際の事例では、もっと多くのエラー処理や境界事態の考慮が必要であるが、単なるシンプルな例なので気をつけて。