数据结构用c语言编写实现复数的四则远算
时间: 2024-10-17 11:05:45 浏览: 38
在 C 语言中,复数通常通过两个整数分别表示实部和虚部来实现,可以定义一个结构体(struct)来封装这两个部分。以下是一个简单的复数结构体 `Complex` 的定义以及实现了加法、减法、乘法和除法的基本操作:
```c
#include <stdio.h>
typedef struct {
int real; // 实部
int imag; // 虚部
} Complex;
// 加法运算
Complex add(Complex a, Complex b) {
Complex result;
result.real = a.real + b.real;
result.imag = a.imag + b.imag;
return result;
}
// 减法运算
Complex subtract(Complex a, Complex b) {
Complex result;
result.real = a.real - b.real;
result.imag = a.imag - b.imag;
return result;
}
// 乘法运算
Complex multiply(Complex a, Complex b) {
Complex result;
result.real = a.real * b.real - a.imag * b.imag;
result.imag = a.real * b.imag + a.imag * b.real;
return result;
}
// 除法运算(假设除数不为零)
Complex divide(Complex a, Complex b) {
int denominatorMagnitude = b.real * b.real + b.imag * b.imag;
Complex result;
result.real = (a.real * b.real + a.imag * b.imag) / denominatorMagnitude;
result.imag = (a.imag * b.real - a.real * b.imag) / denominatorMagnitude;
return result;
}
int main() {
Complex c1 = {5, 3}; // 5 + 3i
Complex c2 = {2, -4}; // 2 - 4i
printf("c1: %d + %di\n", c1.real, c1.imag);
printf("c2: %d + %di\n", c2.real, c2.imag);
Complex sum = add(c1, c2);
printf("Sum: %d + %di\n", sum.real, sum.imag);
Complex difference = subtract(c1, c2);
printf("Difference: %d + %di\n", difference.real, difference.imag);
Complex product = multiply(c1, c2);
printf("Product: %d + %di\n", product.real, product.imag);
if (b.real != 0 && b.imag != 0) { // 避免除以零的情况
Complex quotient = divide(c1, c2);
printf("Quotient: %d + %di\n", quotient.real, quotient.imag);
}
return 0;
}
```
这个示例展示了如何在 C 语言中实现基本的复数四则运算。当然,实际应用中你可能需要添加更多的错误检查和处理。
阅读全文