处理复数时,可以使用结构体来表示复数的实部和虚部,然后定义相应的操作函数来实现复数的加减乘除等运算。下面是一个简单的示例代码:
#include <stdio.h>
typedef struct {
double real;
double imaginary;
} Complex;
Complex add(Complex c1, Complex c2) {
Complex result;
result.real = c1.real + c2.real;
result.imaginary = c1.imaginary + c2.imaginary;
return result;
}
Complex subtract(Complex c1, Complex c2) {
Complex result;
result.real = c1.real - c2.real;
result.imaginary = c1.imaginary - c2.imaginary;
return result;
}
Complex multiply(Complex c1, Complex c2) {
Complex result;
result.real = c1.real * c2.real - c1.imaginary * c2.imaginary;
result.imaginary = c1.real * c2.imaginary + c1.imaginary * c2.real;
return result;
}
void printComplex(Complex c) {
if (c.imaginary >= 0) {
printf("%.2f + %.2fi\n", c.real, c.imaginary);
} else {
printf("%.2f - %.2fi\n", c.real, -c.imaginary);
}
}
int main() {
Complex c1 = {3.0, 4.0};
Complex c2 = {1.0, -2.0};
Complex sum = add(c1, c2);
Complex difference = subtract(c1, c2);
Complex product = multiply(c1, c2);
printf("Sum: ");
printComplex(sum);
printf("Difference: ");
printComplex(difference);
printf("Product: ");
printComplex(product);
return 0;
}
这段代码定义了一个Complex结构体,包含了实部和虚部,然后定义了加法、减法、乘法等操作函数,并在main函数中测试了这些操作。通过结构体和函数的封装,可以方便地处理复数的运算。