用结构体设计实现下列六种基本运算:1)由输入的实部和虚部生成一个复数; 2)两个复数求和;3)两个复数求差;4)两个复数求积:5)从己知复数中分离出实部; 6)从已知复数中分离出虚部。运算结果以相应的复数或实数的表示形式显示。
时间: 2024-09-12 13:16:14 浏览: 52
在C语言中,我们可以使用结构体和指针来实现复数的操作。首先,定义一个名为`Complex`的结构体表示复数,包含实部和虚部:
```c
typedef struct {
double real;
double imag;
} Complex;
```
接下来,我们为每一种运算编写对应的函数:
1. **构造复数**:输入实部和虚部创建一个新的复数。
```c
Complex create_complex(double real, double imag) {
Complex new_num;
new_num.real = real;
new_num.imag = imag;
return new_num;
}
```
2. **加法**:将两个复数相加并返回结果。
```c
Complex add(Complex a, Complex b) {
Complex result;
result.real = a.real + b.real;
result.imag = a.imag + b.imag;
return result;
}
```
3. **减法**:类似加法,但计算差值。
```c
Complex subtract(Complex a, Complex b) {
Complex result;
result.real = a.real - b.real;
result.imag = a.imag - b.imag;
return result;
}
```
4. **乘法**:计算两个复数的乘积。
```c
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;
}
```
5. **分离实部**:直接返回复数的实部。
```c
double get_real(Complex num) {
return num.real;
}
```
6. **分离虚部**:同样,直接返回复数的虚部。
```c
double get_imaginary(Complex num) {
return num.imag;
}
```
每个运算完成后,可以分别打印出结果的形式,如`printf("复数: %f + %fi", result.real, result.imag)`。
阅读全文