复数乘法
注意:
C语言的格式化输出虽然能正常四舍五入,但是有一点貌似和一般的自然写法不同:很接近0的负数四舍五入之后不输出0.00,而是-0.00,这点就要特殊照顾了。
#include <stdio.h>
#include <math.h>
int main()
{
double r1,p1,r2,p2;
int ret = 0;
scanf("%lf%lf%lf%lf",&r1,&p1,&r2,&p2);
double shi1,shi2,xu1,xu2,shi,xu;
shi1 = r1*cos(p1);
shi2 = r2*cos(p2);
xu1 = r1*sin(p1);
xu2 = r2*sin(p2);
shi = shi1 * shi2-xu1*xu2;
xu = shi1*xu2+shi2*xu1;
if (shi < 0 && shi > -0.005) {
shi = 0.00;
}
if (xu < 0 && xu > -0.005) {
xu = 0.00;
}
printf("%.2lf%+.2lfi\n", shi, xu);// %+:有符号,值若>=0,在值前显示加号;若为负,则在值前显示负号
return 0;
}