1051 复数乘法 测试点2、3 舍入导致的符号问题
错误点
- (-0.005,0)上的数精确到小数点后两位时应是0而不是-0
注意点
- cmath中的sin()和cos()
代码
#include <iostream>
#include <cstdio>
#include <cmath>
#include <iomanip>
using namespace std;
int main(){
double a,b,c,d;
double m,n;
cin>>a>>b>>c>>d;
m=a*c*cos(b)*cos(d)-a*c*sin(b)*sin(d);
n=a*c*cos(b)*sin(d)+a*c*sin(b)*cos(d);
if(m<0&&m>-0.005){
m=0;
}
if(n<0&&n>-0.005){
n=0;
}
if(n>=0){
cout<<fixed<<setprecision(2)<<m<<'+'<<n<<'i';
}
else if(n<0){
cout<<fixed<<setprecision(2)<<m<<n<<'i';
}
return 0;
}

浙公网安备 33010602011771号