1051 复数乘法 (15分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805274496319488
第一次提交:

错误原因:
最后 2 3 测试点问题
就是对0.00这个点的A B的取法,
绝对值小于0.005,取到的就是0.00(保留两位)
+0.005就是0.01,-0.005就是-0.01,
所以正数是>=0.005 负数<=-0.005,0.00介于两者之间,其他位数也可以参考
代码:
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{
double r1,p1,r2,p2;
cin>>r1>>p1>>r2>>p2;
double a,b;
a=r1*r2*cos(p1+p2);
b=r1*r2*sin(p1+p2);
printf("%.2f",a);
if(b<0) printf("%.2fi\n",b);
else printf("+%.2fi\n",b);
return 0;
}
第二次提交:AC

代码:
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{
double r1,p1,r2,p2;
cin>>r1>>p1>>r2>>p2;
double a,b;
a=r1*r2*cos(p1+p2);
b=r1*r2*sin(p1+p2);
if(a>-0.005&&a<0.005) cout<<"0.00";
else printf("%.2f",a);
if(b>=0.005) printf("+%.2fi\n",b);
else if(b>-0.005&&b<0.005) printf("+0.00i\n");
else printf("%.2fi\n",b);
return 0;
}
原文:https://www.cnblogs.com/jianqiao123/p/12231182.html