在C语言环境下实现复数运算
在C语言环境下实现复数运算(中)要求:编程实现复数的乘、除及乘幂运算。用程序包含形式实现。包括功能分析文档、程序框图、程序说明文档等。具有可扩充性。...
在C语言环境下实现复数运算(中)要求:编程实现复数的乘、除及乘幂运算。用程序包含形式实现。包括功能分析文档、程序框图、程序说明文档等。具有可扩充性。
展开
展开全部
知道了公式,自己写应当没困难。
乘法:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i
void ChenFa(float a,float b,float c,float d,float *e,float *f){
*e = a*c-b*d;
*f = a*d+b*c;
}
除法:(a+bi)/(c+di)=((ac+bd)/(c*c+d*d))+((bc-ad)/(c*c+d*d))i
void ChuFa(float a,float b,float c,float d,float *e,float *f){
if ( c*c + d*d == 0.0 ){printf("FenMu 0.0");exit(1);};
*e = (a*c+b*d)/(c*c+d*d);
*f = (b*c-a*d)/(c*c+d*d);
}
乘幂: z=x+iy; |z|=r; theta=atan(y/x)
z^n=r^n*exp(n*theta*i);
#include <math.h>
void zpower(float x, float y, int n, float *u, float *v)
{
float theta;
int i;
z= sqrt(x*x + y* y);
theta = atan(y/x);
*u = z;
for (i=1;i<n;i++) *u = *u * z;
*v = n * theta;
}
除法:
z1=r1(cos(tita1)+i*sin(tita1))
z2=r2(cos(tita2) + i *sin(tita2))
z1/z2= r1/r2 [cos(thita1-thita2) + i * sin(thita1-thita2);
自己写吧。
乘法:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i
void ChenFa(float a,float b,float c,float d,float *e,float *f){
*e = a*c-b*d;
*f = a*d+b*c;
}
除法:(a+bi)/(c+di)=((ac+bd)/(c*c+d*d))+((bc-ad)/(c*c+d*d))i
void ChuFa(float a,float b,float c,float d,float *e,float *f){
if ( c*c + d*d == 0.0 ){printf("FenMu 0.0");exit(1);};
*e = (a*c+b*d)/(c*c+d*d);
*f = (b*c-a*d)/(c*c+d*d);
}
乘幂: z=x+iy; |z|=r; theta=atan(y/x)
z^n=r^n*exp(n*theta*i);
#include <math.h>
void zpower(float x, float y, int n, float *u, float *v)
{
float theta;
int i;
z= sqrt(x*x + y* y);
theta = atan(y/x);
*u = z;
for (i=1;i<n;i++) *u = *u * z;
*v = n * theta;
}
除法:
z1=r1(cos(tita1)+i*sin(tita1))
z2=r2(cos(tita2) + i *sin(tita2))
z1/z2= r1/r2 [cos(thita1-thita2) + i * sin(thita1-thita2);
自己写吧。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询