#include #include void cadd(double a, double b, double c, double d, double *x, double *y){ *x=a+c; *y=b+d; } void csub(double a, double b, double c, double d, double *x, double *y){ *x=a-c; *y=b-d; } void cmul(double a, double b, double c, double d, double *x, double *y){ *x = a * c - b * d; *y = a * d + c * b; } void cdiv(double a, double b, double c, double d, double *x, double *y){ *x = (a * c + b * d) / (c * c + d * d); *y = (b * c - a * d) / (c * c + d * d); } int main(void){ double a=1./sqrt(2.), b=1./sqrt(2.), x, y; cmul(a, b, a, b, &x, &y); cmul(x, y, x, y, &x, &y); printf("1/2^(1/2)+1/2^(1/2)i=%f+%fi\n", x, y); return 0; }