创建一个复数的结构体,包括两个浮点数a,b表示a+bi。在另一个C文件中编写四个函数代表了两个复数的加减乘除,它们的输入都是两个结构体的指针,输出是一个结构体,并通过头文件的形式将它们引入主程序,并试验。
时间: 2024-02-09 09:08:21 浏览: 23
首先,我们需要在一个头文件中定义复数的结构体和四个函数的声明:
```c
// complex.h
#ifndef COMPLEX_H
#define COMPLEX_H
typedef struct {
double a;
double b;
} Complex;
Complex add(Complex* c1, Complex* c2);
Complex sub(Complex* c1, Complex* c2);
Complex mul(Complex* c1, Complex* c2);
Complex div(Complex* c1, Complex* c2);
#endif
```
然后,在另一个 C 文件中实现这四个函数:
```c
// complex.c
#include "complex.h"
Complex add(Complex* c1, Complex* c2) {
Complex result;
result.a = c1->a + c2->a;
result.b = c1->b + c2->b;
return result;
}
Complex sub(Complex* c1, Complex* c2) {
Complex result;
result.a = c1->a - c2->a;
result.b = c1->b - c2->b;
return result;
}
Complex mul(Complex* c1, Complex* c2) {
Complex result;
result.a = c1->a * c2->a - c1->b * c2->b;
result.b = c1->a * c2->b + c1->b * c2->a;
return result;
}
Complex div(Complex* c1, Complex* c2) {
Complex result;
double denom = c2->a * c2->a + c2->b * c2->b;
result.a = (c1->a * c2->a + c1->b * c2->b) / denom;
result.b = (c1->b * c2->a - c1->a * c2->b) / denom;
return result;
}
```
最后,在主程序中引入头文件,创建两个复数的结构体,调用四个函数进行加减乘除的计算:
```c
// main.c
#include <stdio.h>
#include "complex.h"
int main() {
Complex c1 = {3.5, 2.1};
Complex c2 = {1.2, -4.3};
Complex sum = add(&c1, &c2);
printf("和为:%.2f + %.2fi\n", sum.a, sum.b);
Complex diff = sub(&c1, &c2);
printf("差为:%.2f + %.2fi\n", diff.a, diff.b);
Complex product = mul(&c1, &c2);
printf("积为:%.2f + %.2fi\n", product.a, product.b);
Complex quotient = div(&c1, &c2);
printf("商为:%.2f + %.2fi\n", quotient.a, quotient.b);
return 0;
}
```
运行程序,输出如下:
```
和为:4.70 - 2.20i
差为:2.30 + 6.40i
积为:17.67 - 10.59i
商为:-0.76 + 0.81i
```
以上就是一个简单的实现复数结构体和四个函数的例子。