#include typedef struct { double re; double im; } complex; void csum(const complex *a, const complex *b, complex *c); void csub(const complex *a, const complex *b, complex *c); void cprod(const complex *a, const complex *b, complex *c); void cdiv(const complex *a, const complex *b, complex *c); int main(void) { complex a, b, c; a.re = 1.0; a.im = 0.0; b.re = 0.0; b.im = 1.0; csum(&a, &b, &c); printf("c.re=%f, c.im=%f\n", c.re, c.im); csub(&a, &b, &c); printf("c.re=%f, c.im=%f\n", c.re, c.im); cprod(&a, &b, &c); printf("c.re=%f, c.im=%f\n", c.re, c.im); cdiv(&a, &b, &c); printf("c.re=%f, c.im=%f\n", c.re, c.im); return 0; } void csum(const complex *a, const complex *b, complex *c) { c->re = a->re + b->re; c->im = a->im + b->im; } void csub(const complex *a, const complex *b, complex *c) { c->re = a->re - b->re; c->im = a->im - b->im; } void cprod(const complex *a, const complex *b, complex *c) { c->re = a->re * b->re - a->im * b->im; c->im = a->im - b->re + a->im * b->re; } void cdiv(const complex *a, const complex *b, complex *c) { c->re = (a->re * b->re + a->im * b->im)/(b->re * b->re + b->im * b->im); c->im = (b->re - a->im - a->re * b->re)/(b->re * b->re + b->im * b->im); }