用结构体类型描述复数,编一程序,输入两个负数使之能够计算并输出复数四则运算的结果,要求复数加、减、乘和除分别用4个函数实现。
时间: 2023-12-03 18:46:37 浏览: 46
下面是一个用结构体类型描述复数的程序,并实现了复数的四则运算:
```c
#include <stdio.h>
// 定义复数结构体
typedef struct complex {
double real; // 实部
double imag; // 虚部
} Complex;
// 函数声明
Complex add(Complex a, Complex b);
Complex sub(Complex a, Complex b);
Complex mul(Complex a, Complex b);
Complex div(Complex a, Complex b);
int main() {
Complex a, b;
printf("请输入第一个复数的实部和虚部:");
scanf("%lf%lf", &a.real, &a.imag);
printf("请输入第二个复数的实部和虚部:");
scanf("%lf%lf", &b.real, &b.imag);
// 输出结果
printf("两个复数相加的结果为:%.2lf + %.2lf i\n", add(a, b).real, add(a, b).imag);
printf("两个复数相减的结果为:%.2lf + %.2lf i\n", sub(a, b).real, sub(a, b).imag);
printf("两个复数相乘的结果为:%.2lf + %.2lf i\n", mul(a, b).real, mul(a, b).imag);
printf("两个复数相除的结果为:%.2lf + %.2lf i\n", div(a, b).real, div(a, b).imag);
return 0;
}
// 复数加法
Complex add(Complex a, Complex b) {
Complex res;
res.real = a.real + b.real;
res.imag = a.imag + b.imag;
return res;
}
// 复数减法
Complex sub(Complex a, Complex b) {
Complex res;
res.real = a.real - b.real;
res.imag = a.imag - b.imag;
return res;
}
// 复数乘法
Complex mul(Complex a, Complex b) {
Complex res;
res.real = a.real * b.real - a.imag * b.imag;
res.imag = a.real * b.imag + a.imag * b.real;
return res;
}
// 复数除法
Complex div(Complex a, Complex b) {
Complex res;
double t = b.real * b.real + b.imag * b.imag;
res.real = (a.real * b.real + a.imag * b.imag) / t;
res.imag = (a.imag * b.real - a.real * b.imag) / t;
return res;
}
```
运行程序后,输入两个负数作为复数的实部和虚部,即可得到复数四则运算的结果。