思路:
应该是直接按照复数乘除法输入就好了。
#include<bits/stdc++.h>
using namespace std;
int main()
{
double r1,p1,r2,p2;
cin>>r1>>p1>>r2>>p2;
double a,b;
a=r1*r2*cos(p1)*cos(p2)-r1*r2*sin(p1)*sin(p2);
b=r1*r2*cos(p1)*sin(p2)+r1*r2*cos(p2)*sin(p1);
printf("%.2f%.2fi",a,b);
}
错了。。。。
#include<bits/stdc++.h>
using namespace std;
int main()
{
double r1,p1,r2,p2;
cin>>r1>>p1>>r2>>p2;
double a,b;
a=r1*r2*cos(p1)*cos(p2)-r1*r2*sin(p1)*sin(p2);
b=r1*r2*cos(p1)*sin(p2)+r1*r2*cos(p2)*sin(p1);
if(a<0&&a>=-0.005) a=0; //防止b出现值为-0.00的情况。
if(b<0&&b>=-0.005) b=0; //防止b出现值为-0.00的情况。
if(b>=0) printf("%.2f+%.2fi",a,b); //防止b>=0时,仅输出数字,而不输出‘+’。
else printf("%.2f%.2fi",a,b);
}
改好了,这里注意两点:
1.b不可以输出为-0.00,应为+0.00;
2.b>=0的时候注意此时仅输出b的话是没有‘-’的,要人为添加一个‘-’。