定义成结构体 实部和虚部分别定义成double,然后在自己定义运算……
创新互联公司主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、营销网站、网站程序开发、HTML5响应式成都网站建设公司、成都手机网站制作、微商城、网站托管及成都网站改版、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为成都户外休闲椅行业客户提供了网站设计服务。
如果是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;in;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);
自己写吧。
f(n)对m取模,即是用n(参数)除以m所得的余数。
C语言有一种 modulo 运算,运算符是 %, 中文叫 “模除”运算。
参加 模除 的两个数是整数,除的结果是 取余数,丢掉商。
例如:
5 % 3 得 2
4 % 3 得 1
-5 % 3 得 -2
-4 % 3 得 -1
f(n) modulo m:
f(n) % m -- 求余数。
这里的模是实整数“模除”,不是复数求模,复数的模是复数的绝对值。
1、首先打开vc6.0, 新建一个项目。
2、添加stdio.h头文件。
3、添加math.h头文件。
4、添加main主函数。
5、定义结构体z。
6、定义double类型val变量。
7、初始化z。
8、使用cabs函数。
9、使用printf打印信息。
10、运行程序,看看结果。
这个是一个列子,可以参考下
struct complex{
float rmz; //实部
float lmz;//虚部
};
//产生一个复数.
complex getAComplex(float a,float b){
complex Node=new complex();
Node.rmz=a;
Node.lmz=b;
return Node;}
//两个复数求和
complex addComplex(complex complex1,complex complex2)
{
complex Node=new complex();
Node.rmz=complex1.rmz+complex2.rmz;
Node.lmz=complex1.lmz+complex2.lmz;
return Node;
}
//求两个复数的差
complex subComplex(complex complex1,complex complex2)
{
complex Node=new complex();
Node.rmz=complex1.rmz-complex2.rmz;
Node.lmz=complex1.lmz-complex2.lmz;
return Node;
}
//求两个复数的积
complex productComplex(complex complex1,complex complex2)
{
complex Node=new complex();
Node.rmz=complex1.rmz*complex2.rmz-complex1.lmz*complex2.lmz;
Node.lmz=complex1.lmz*complex2.rmz+complex2.lmz*complex2.rmz;
return Node;
}
//求实部
float getComplexRmz(complex complex1)
{
return complex1.rmz;
}
//求虚部
float getComplexLmz(complex complex1)
{
return complex1.lmz;
}
#includestdio.h
#includemath.h
void main()
{
struct _complex z; /*声明一个复数变量*/ //是_complex
z.x=4.0; /*实部*/
z.y=5.0; /*虚部*/
printf("The absolute value of %.4f+%.4fi is %.4f\n",z.x,z.y,cabs(z)); //是z.x和z.y
}