#include "complex.h" #include void print_complex(struct complex a) { printf("complex(%.2f ", a.real); if (a.img < 0) { printf("- %.2fi", -a.img); } else { printf("+ %.2fi", a.img); } printf(")\n"); } struct complex neg_complex(struct complex a) { struct complex z = { -a.real, -a.img }; return z; } struct complex add_complex(struct complex a, struct complex b) { struct complex z = { a.real + b.real, a.img + b.img }; return z; } struct complex sub_complex(struct complex a, struct complex b) { return add_complex(a, neg_complex(b)); } struct complex mul_complex(struct complex a, struct complex b) { struct complex z = { a.real * b.real - a.img * b.img, a.real * b.img + a.img * b.real }; return z; } struct complex div_complex(struct complex a, struct complex b) { struct complex z = { (a.real * b.real + a.img * b.img) / (b.real * b.real + b.img * b.img), (a.img * b.real - a.real * b.img) / (b.real * b.real + b.img * b.img) }; return z; }