上海seo网站排名优化公司,wordpress自动翻译双语主页,郑州企业的网站建设,网站登录页面空白复数可以写成(A Bi)的常规形式#xff0c;其中A是实部#xff0c;B是虚部#xff0c;i是虚数单位#xff0c;满足i2 -1#xff1b;也可以写成极坐标下的指数形式(R*e(Pi))#xff0c;其中R是复数模#xff0c;P是辐角#xff0c;i是虚数单位#xff0c;其等价于三角… 复数可以写成(A Bi)的常规形式其中A是实部B是虚部i是虚数单位满足i2 -1也可以写成极坐标下的指数形式(R*e(Pi))其中R是复数模P是辐角i是虚数单位其等价于三角形式(R(cos(P) isin(P))。现给定两个复数的R和P要求输出两数乘积的常规形式。输入格式输入在一行中依次给出两个复数的R1, P1, R2, P2数字间以空格分隔。输出格式在一行中按照“ABi”的格式输出两数乘积的常规形式实部和虚部均保留2位小数。注意如果B是负数则应该写成“A-|B|i”的形式。输入样例2.3 3.5 5.2 0.4输出样例-8.68-8.23i错误代码 /************************************************************************* File Name: 1051.c Author: YueBo Function:复数乘法 Created Time: 2016年11月23日 星期三 22时16分44秒************************************************************************/#include stdio.h
#include math.hfloat myRound(float x)
{float val 0.0;if (x 0) {val x * 1000 5;} else {val x * 1000 - 5;}val (int)(val / 10);val val / 100.0;return val;
}int main()
{float R1, P1, R2, P2, R3, P3;float temp1 0.0, temp2 0.0;scanf(%f%f%f%f, R1, P1, R2, P2);R3 R1 * R2;P3 P1 P2;temp1 myRound(R3*sin(P3));temp2 myRound(R3*cos(P3));if (temp1 0) {printf(%.2f%.2fi, temp2, temp1);} else {printf(%.2f%.2fi, temp2, temp1);}return 0;
}错误提示错误原因
总有一个测试数据过不去感觉怪异的不得了怎么检查都查不出错误后来查看别人的代码发现是自己数据类型用错啦由于float的精度在中间结果中可能会出错譬如说0.000000003 × 10000000 0这样的错误因为float是8位有效数字double是16位有效数字很明显把上面所有的float改成double就OK啦☺由此发现对于科学计算一定要用double及精度在之之上的数据类型。
正确代码 #include stdio.h
#include math.hdouble myRound(double x)
{double val 0.0;if (x 0) {val x * 1000 5;} else {val x * 1000 - 5;}val (int)(val / 10);val val / 100.0;return val;
}int main()
{double R1, P1, R2, P2, R3, P3;double temp1 0.0, temp2 0.0;scanf(%lf%lf%lf%lf, R1, P1, R2, P2);R3 R1 * R2;P3 P1 P2;temp1 myRound(R3*sin(P3));temp2 myRound(R3*cos(P3));if (temp1 0) {printf(%.2f%.2fi, temp2, temp1);} else {printf(%.2f%.2fi, temp2, temp1);}return 0;
}之所以自己写一个四舍五入的函数而不用printf自动进行四舍五入是因为printf(%.2f, -0.0002);结果为-0.00其实这样做还是麻烦啦稍微对printf函数进行限制一下就OK啦代码如下 /************************************************************************* File Name: 1051.c Author: YueBo Function:复数乘法 Created Time: 2016年11月23日 星期三 22时16分44秒************************************************************************/#include stdio.h
#include math.hint main()
{double R1, P1, R2, P2, Re, Im;scanf(%lf%lf%lf%lf, R1, P1, R2, P2);Re R1 * R2 * cos(P1P2);Im R1 * R2 * sin(P1P2);if (-0.005Re Re0) {printf(0.00);} else {printf(%.2f, Re);}if (-0.005Im Im0) {printf(0.00i);} else if (Im 0) {printf(%.2fi, Im);} else {printf(%.2fi, Im);}return 0;
}