题目原文
一个复数可以用实部和虚部两部分组成,a1 = 1.2 + 3.4i,其中1.2是实部,3.4是虚部。定义一个结构体ComplexNumber,包含imaginary和real两个成员变量,能够表示复数。编写一个函数ComplexAdd,可以正确计算两个复数的和。已知a2 = 5.6 + 7.8i,利用上述函数,计算a1 和 a2的和,并输出“a1+a2 =6.8+11.2i”。
源代码
#include <stdio.h>
struct complexNumber {
float real;
float imag;
} complex;
struct complexNumber add(struct complexNumber a1, struct complexNumber a2);
int main()
{
struct complexNumber a1, a2, result;
a1.real=1.2;
a2.real=5.6;
a1.imag=3.4;
a2.imag=7.8;
result = add(a1, a2);
printf("a1+a2 = %.1f + %.1fi\n", result.real, result.imag);
return 0;
}
struct complexNumber add(struct complexNumber a1, struct complexNumber a2) {
struct complexNumber m;
m.real = a1.real + a2.real;
m.imag = a1.imag + a2.imag;
return (m);
}