题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805274496319488
这题有个坑点
分析:当A或者B小于0但是大于-0.005(比如-0.00001)时候,如果按照A>=0的判断,会输出“-0.00”这样的结果,事实上应该输出“0.00”【B同理,应该输出“+0.00i”】
代码
#include<cstdio>#include<cmath>using namespace std;int main(){double r1, p1, r2, p2;scanf("%lf%lf%lf%lf",&r1, &p1, &r2, &p2);double A, B, a1, a2, b1, b2;a1 = r1 * cos(p1), b1 = r1 * sin(p1);a2 = r2 * cos(p2), b2 = r2 * sin(p2);A = a1 * a2 - b1 * b2;B = a1 * b2 + a2 * b1;if (A + 0.005 >= 0 && A < 0)printf("0.00");elseprintf("%.2f", A);if(B >= 0)printf("+%.2fi", B);else if (B + 0.005 >= 0 && B < 0)printf("+0.00i");elseprintf("%.2fi", B);return 0;}
