代码:
#include <stdio.h>
#include <math.h>
void put(double a1, double b1, double a2, double b2, double up, double down, char op)
{
if (b1 < 0 && b2 < 0)printf("(%.1lf-%.1lfi) %c (%.1lf-%.1lfi) = ", a1, fabs(b1), op, a2, fabs(b2));
else if (b1 < 0) printf("(%.1lf-%.1lfi) %c (%.1lf+%.1lfi) = ", a1, fabs(b1), op, a2, b2);
else if (b2 < 0) printf("(%.1lf+%.1lfi) %c (%.1lf-%.1lfi) = ", a1, b1, op, a2, fabs(b2));
else printf("(%.1lf+%.1lfi) %c (%.1lf+%.1lfi) = ", a1, b1, op, a2, b2);
if (fabs(up) < 0.1 && fabs(down) < 0.1) printf("%.1lf\n", 0);
else if (fabs(up) < 0.1) printf("%.1lfi\n",down);
else if (fabs(down) < 0.1) printf("%.1lf\n", up);
else if (down > 0) printf("%.1lf+%.1lfi\n", up, down);
else if (down < 0) printf("%.1lf%.1lfi\n", up, down);
}
void sum(double a1, double b1, double a2, double b2)
{
double up = a1 + a2;
double down = b1 + b2;
put(a1, b1, a2, b2, up, down, '+');
}
void sub(double a1, double b1, double a2, double b2)
{
double up = a1 - a2;
double down = b1 - b2;
put(a1, b1, a2, b2, up, down, '-');
}
void mul(double a1, double b1, double a2, double b2)
{
double up = a1 * a2 - b1 * b2;
double down = a1 * b2 + a2 * b1;
put(a1, b1, a2, b2, up, down, '*');
}
void dev(double a1, double b1, double a2, double b2)
{
double up = (a1 * a2 + b1 * b2) / (a2 * a2 + b2 * b2);
double down = (a2 * b1 - a1 * b2) / (a2 * a2 + b2 * b2);
put(a1, b1, a2, b2, up, down, '/');
}
int main()
{
double a1 = 0, b1 = 0, a2 = 0, b2 = 0;
scanf("%lf %lf %lf %lf", &a1, &b1, &a2, &b2);
sum(a1, b1, a2, b2);
sub(a1, b1, a2, b2);
mul(a1, b1, a2, b2);
dev(a1, b1, a2, b2);
return 0;
}