int abs(int i); // 处理int类型的取绝对值
double fabs(double i); //处理double类型的取绝对值
由于实部、虚部都保留两位小数,所以当A、B的值介于0与-0.01之间时就必须要把它们设置为0,否则会有用例无法通过。
#include<bits/stdc++.h>
using namespace std;
double R1,P1,R2,P2,A,B;
int main(){
cin>>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.01)
A=0;
if(fabs(B)<0.01)
B=0;
if(B>=0)
printf("%.2f+%.2fi\n",A,B);
else
printf("%.2f-%.2fi\n",A,fabs(B));
}