用结构体变量表示复数(实部和虚部),输入两个复数,求两复数的和与积。注意:若两个复数相加或乘积时虚部为0时,只输出实部。设复数定义为:A=a+bi 则复数的加法定义为:(a+bi)+(c+di)=(a+b)+(b+d)i 复数的乘法定义为:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i
时间: 2023-04-05 13:02:34 浏览: 72
可以回答这个问题。
用结构体变量表示复数(实部和虚部),输入两个复数,求两复数的和与积。
代码如下:
#include <stdio.h>
typedef struct {
float real; // 实部
float imag; // 虚部
} Complex;
int main() {
Complex a, b, sum, product;
printf("请输入第一个复数的实部和虚部,用空格隔开:");
scanf("%f %f", &a.real, &a.imag);
printf("请输入第二个复数的实部和虚部,用空格隔开:");
scanf("%f %f", &b.real, &b.imag);
// 复数的加法
sum.real = a.real + b.real;
sum.imag = a.imag + b.imag;
// 复数的乘法
product.real = a.real * b.real - a.imag * b.imag;
product.imag = a.real * b.imag + a.imag * b.real;
// 输出结果
printf("两复数的和为:");
if (sum.imag == 0) {
printf("%.2f\n", sum.real);
} else {
printf("%.2f + %.2fi\n", sum.real, sum.imag);
}
printf("两复数的积为:");
if (product.imag == 0) {
printf("%.2f\n", product.real);
} else {
printf("%.2f + %.2fi\n", product.real, product.imag);
}
return 0;
}