题目描述
实现代码
实现代码一:
(有两个测试点报错,应该是0判断的问题)
#include<iostream>
#include<cmath>
using namespace std;
int main(void)
{
double r1,p1,r2,p2;
cin>>r1>>p1>>r2>>p2;
double a,b,c,d;
a=r1*cos(p1);
b=r1*sin(p1);
c=r2*cos(p2);
d=r2*sin(p2);
double A=a*c-d*b;
double B=a*d+b*c;
printf("%.2lf",A);
if(B>=0)
{
cout<<"+";
}
printf("%.2lfi\n",B);
}
实现代码一-平台测试结果
实现代码二:(AC,上述错误后参考他人代码后得出)
#include<iostream>
#include<cmath>
using namespace std;
int main(void)
{
double r1,p1,r2,p2;
cin>>r1>>p1>>r2>>p2;
double a,b,c,d;
a=r1*cos(p1);
b=r1*sin(p1);
c=r2*cos(p2);
d=r2*sin(p2);
double A=a*c-d*b;
double B=a*d+b*c;
if(A+0.005>=0 && A<0)//保留两位数,四舍五入
{
printf("0.00");
}
else
{
printf("%.2lf",A);
}
if(B+0.005>=0&&B<0)//保留两位数,四舍五入
{
printf("+0.00i\n");
}
else if(B>=0)
{
printf("+%.2lfi\n",B);
}
else
{
printf("%.2lfi\n",B);
}
}
实现代码二-平台测试结果