细节:如果存在-0.006输出结果可能是-0.00,所以要特判一下。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main(void)
{
double r1,p1,r2,p2;
double A,B;
scanf("%lf%lf%lf%lf",&r1,&p1,&r2,&p2);
A = r1*r2*(cos(p1)*cos(p2)-sin(p1)*sin(p2));
B = r1*r2*(cos(p1)*sin(p2)+sin(p1)*cos(p2));
if(fabs(A)<0.005) A=0;
if(fabs(B)<0.005) B=0;
printf("%.2lf",A);
if(B<0) printf("-%.2lfi\n",fabs(B));
else printf("+%.2lfi\n",B);
return 0;
}