题目地址:1051.复数乘法
易错分析:
1. 对于像-0.001i这样的数,应该输出+0.00i才合理
程序:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
// 对于像-0.000001i这样的数,应该输出+0.00i才合理而不是-0.00i,因此有了如下判断
int main()
{
double R1, P1, R2, P2;
cin >> R1 >> P1 >> R2 >> P2;
double real = R1*R2*(cos(P1)*cos(P2) - sin(P1)*sin(P2)); // 计算实部
double image = R1*R2*sin(P2)*cos(P1) + R1*R2*sin(P1)*cos(P2); // 计算虚部
cout << setiosflags(ios::fixed) << setprecision(2); // 保留两位小数
if (real < 0 && real > -0.01)
real = 0;
if (image < 0 && image > -0.01)
image = 0;
if (image >= 0)
cout << real << "+" << image << "i" << endl;
else
cout << real << image << "i" << endl;
}