#include
struct complex
{
double real;
double imaginary;
};
struct complex input(void)
{
struct complex num;
printf("input complex number (eg.2.0+1.1i):");
scanf("%lf+%lfi",&num.real,&num.imaginary);
return num;
}
struct complex plus(struct complex a,struct complex b)
{
struct complex num;
num.real = a.real + b.real;
num.imaginary = a.imaginary + b.imaginary;
return num;
}
struct complex minus(struct complex a,struct complex b)
{
struct complex num;
num.real = a.real - b.real;
num.imaginary = a.imaginary - b.imaginary;
return num;
}
void output(struct complex a)
{
printf("%lf + %lfin",a.real,a.imaginary);
}
int main()
{
struct complex n1,n2,sum,dif;
n1 = input();
printf("you inputed ");
output(n1);
n2 = input();
printf("you inputed ");
output(n2);
sum = plus(n1,n2);
printf("sum is ");
output(sum);
dif = minus(n1,n2);
printf("dif is ");
output(dif);
}
/tmp/c2> xx19
input complex number (eg.2.0+1.1i):2.0+1.1i
you inputed 2.000000 + 1.100000i
input complex number (eg.2.0+1.1i):42.0+3.2i
you inputed 42.000000 + 3.200000i
sum is 44.000000 + 4.300000i
dif is -40.000000 + -2.100000i