📄 complex.h
字号:
/*///////////////////////////////////////////////////////////////////////////////////////////
--------------------------------by linker110@yahoo.com.cn---------------------------------
20:03 2007-10-11
///////////////////////////////////////////////////////////////////////////////////////////*/
typedef struct
{
float real;
float img;
}COMPLEX;
#define COM_PI 3.14159265
extern COMPLEX *ComAdd(const COMPLEX *add1, const COMPLEX *add2,COMPLEX *result);
extern COMPLEX *ComSub(const COMPLEX *sub1, const COMPLEX *sub2,COMPLEX *result);
extern COMPLEX *ComMul(const COMPLEX *mul1, const COMPLEX *mul2,COMPLEX *result);
extern COMPLEX *ComDiv(const COMPLEX *div1, const COMPLEX * div2,COMPLEX *result);
extern COMPLEX *ComCon(const COMPLEX *target,COMPLEX *result);
extern void ComDisplay(const COMPLEX *target);
/*////////////////////////////////////////////////////////////////////////////////////////////
函数功能:执行两个复数的加法
入口参数:指向两个加数的指针
出口参数:指向结果的指针
注意事项:保存结果的复数需在函数外申请,本函数不处理此项内容;任何一个加数均可同时用于保存结果
////////////////////////////////////////////////////////////////////////////////////////////*/
extern COMPLEX *ComAdd(const COMPLEX *add1, const COMPLEX *add2,COMPLEX *result)
{
result->real = add1->real + add2->real;
result->img = add1->img + add2->img;
return result;
}
/*////////////////////////////////////////////////////////////////////////////////////////////
函数功能:执行两个复数的减法
入口参数:指向两个减数的指针
出口参数:指向结果的指针
注意事项:保存结果的复数需在函数外申请,本函数不处理此项内容;任何一个减数均可同时用于保存结果
////////////////////////////////////////////////////////////////////////////////////////////*/
extern COMPLEX *ComSub(const COMPLEX *sub1, const COMPLEX *sub2,COMPLEX *result)
{
result->real = sub1->real - sub2->real;
result->img = sub1->img - sub2->img;
return result;
}
/*////////////////////////////////////////////////////////////////////////////////////////////
函数功能:执行两个复数的乘法
入口参数:指向两个乘数的指针
出口参数:指向结果的指针
注意事项:保存结果的复数需在函数外申请,本函数不处理此项内容;任何一个乘数均可同时用于保存结果
////////////////////////////////////////////////////////////////////////////////////////////*/
extern COMPLEX *ComMul(const COMPLEX *mul1, const COMPLEX *mul2,COMPLEX *result)
{
float m1r=mul1->real,m1i=mul1->img,m2r=mul2->real,m2i=mul2->img;
result->real =m1r * m2r - m1i * m2i;
result->img = m1r * m2i + m2r * m1i;
return result;
}
/*////////////////////////////////////////////////////////////////////////////////////////////
函数功能:执行两个复数的除法
入口参数:指向被除数和除数的指针
出口参数:指向结果的指针
注意事项:保存结果的复数需在函数外申请,本函数不处理此项内容;被除数和除数均可同时用于保存结果
未处理除数为零的情况
////////////////////////////////////////////////////////////////////////////////////////////*/
extern COMPLEX *ComDiv(const COMPLEX *div1, const COMPLEX *div2,COMPLEX *result)
{
float d1r=div1->real,d1i=div1->img,d2r=div2->real,d2i=div2->img;
result->real = (d1r * d2r + d1i * d2i)/(d2r * d2r + d2i * d2i);
result->img =(d2r * d1i - d1r * d2i)/(d2r * d2r + d2i * d2i);
return result;
}
/*////////////////////////////////////////////////////////////////////////////////////////////
函数功能:求一个复数的共轭复数
入口参数:目标复数指针
出口参数:指向结果的指针
注意事项:目标复数可以同时用于保存结果
////////////////////////////////////////////////////////////////////////////////////////////*/
extern COMPLEX *ComCon(const COMPLEX *target,COMPLEX *result)
{
float tarrel=target->real,tarimg=target->img;
result->real = tarrel;
result->img = -tarimg;
return result;
}
/*////////////////////////////////////////////////////////////////////////////////////////////
函数功能:显示复数,用于调试
入口参数:指向欲显示的复数的指针
出口参数:
注意事项:
////////////////////////////////////////////////////////////////////////////////////////////*/
extern void ComDisplay(const COMPLEX *target)
{
printf("real = %f\t ,img = %f\n",target->real,target->img);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -