N'ayez pas peur de cette question pour les élèves qui ont oublié le pluriel. Vous pouvez la comprendre après avoir lu la question et l'avoir calculée vous-même.
Les points de test 2 et 3 de cette question sont deux fosses. Il convient de noter que la question est de garder deux décimales. Par conséquent, il est nécessaire de juger le cas où la valeur absolue de A et B est inférieure à 0,005, sinon la sortie du symbole sera erronée.
#include <cstdio>
#include <cmath>
struct FuShu{
double A;
double B;
};
int main(){
FuShu n, m, sum;
double r1, p1, r2, p2;
scanf("%lf %lf %lf %lf", &r1, &p1, &r2, &p2);
n.A = r1*cos(p1); n.B = r1*sin(p1);
m.A = r2*cos(p2); m.B = r2*sin(p2);
sum.A = n.A*m.A - n.B*m.B;
sum.B = n.A*m.B + n.B*m.A;
if(fabs(sum.A) < 0.005){
printf("0.00");
}else{
printf("%.2f", sum.A);
}
if(fabs(sum.B) < 0.005){
printf("+0.00i");
}else if(sum.B > 0){
printf("+%.2fi", sum.B);
}else{
printf("%.2fi", sum.B);
}
return 0;
}