PAT B1051 Multiplication de nombres complexes (15 points)

Insérez la description de l'image ici
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;
} 

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45964844/article/details/113657271
conseillé
Classement