设计2个复数的加、乘和取模运算程序 要求: 1. 设计复数数据类型 2. 用函数实现上述3种运算。用C语言结构体实现
时间: 2024-02-24 19:55:29 浏览: 83
复数的四则运算 数据结构
好的,以下是一个用 C 语言结构体实现复数的加、乘和取模运算的示例程序:
```c
#include <stdio.h>
#include <math.h>
// 定义复数结构体
typedef struct {
double real; // 复数的实部
double imag; // 复数的虚部
} Complex;
// 复数加法
Complex complex_add(Complex c1, Complex c2) {
Complex result;
result.real = c1.real + c2.real;
result.imag = c1.imag + c2.imag;
return result;
}
// 复数乘法
Complex complex_mult(Complex c1, Complex c2) {
Complex result;
result.real = c1.real * c2.real - c1.imag * c2.imag;
result.imag = c1.real * c2.imag + c1.imag * c2.real;
return result;
}
// 复数模长
double complex_mod(Complex c) {
return sqrt(c.real * c.real + c.imag * c.imag);
}
int main() {
// 定义两个复数
Complex c1 = {1, 2};
Complex c2 = {3, 4};
// 计算复数加法
Complex c_add = complex_add(c1, c2);
printf("复数加法结果:%.2f + %.2fi\n", c_add.real, c_add.imag);
// 计算复数乘法
Complex c_mult = complex_mult(c1, c2);
printf("复数乘法结果:%.2f + %.2fi\n", c_mult.real, c_mult.imag);
// 计算复数模长
double c_mod = complex_mod(c1);
printf("复数模长为:%.2f\n", c_mod);
return 0;
}
```
在程序中,我们定义了一个复数结构体,包括实部和虚部,然后分别实现了复数加法、乘法和取模的函数。在主函数中,我们定义了两个复数,然后调用上述三个函数进行计算,并输出结果。
注意,这里我们使用了数学库函数 `sqrt()` 来计算复数的模长,需要在编译时链接数学库,即使用以下命令进行编译:
```bash
gcc complex.c -o complex -lm
```
其中 `-lm` 表示链接数学库。
阅读全文