📜  <complex.h>带有示例的C中的头文件

📅  最后修改于: 2021-05-26 01:12:37             🧑  作者: Mango

大多数C程序通过使用complex.h头文件来处理复数运算和操作。此头文件已添加到C99 Standard中

C++标准库具有标头,该标头将复数实现为模板类complex ,它与C语言中的不同。

关联的宏
一些宏如下所示。左侧的值描述了complex.h中的宏,右侧的值描述了在C99标准中添加的关键字(_Imaginary,_Complex)对这些宏的扩展。

Macro Name Expands To
complex _Complex
imaginary _Imaginary
_Complex_I (const float _Complex) i
_Imaginary_I (const float _Imaginary) i
I _Imaginary_I(_Complex_I if _Imaginary_I is absent)

下面的程序有助于创建复数。

范例1:

// C program to show the working
// of complex.h library
  
#include 
#include 
  
int main(void)
{
    double real = 1.3,
           imag = 4.9;
    double complex z
        = CMPLX(real, imag);
    printf(
        "z = %.1f% + .1fi\n",
        creal(z), cimag(z));
}
输出:
z = 1.3+4.9i

解释:

  • cmplx()函数通过将实部和虚部作为参数来创建复数对象。此函数返回复数的对象。
  • creal()函数返回复数的实部
  • cimag()函数返回复数的虚部
  • 如果我们的实部和虚部是float类型,则使用cmplxf()函数生成复数,并使用crealf()cimagf()函数获取实部和虚部。
  • 如果我们的实部和虚部都是long double类型,则可以使用cmplxl()函数生成复数,而要获得实部和虚部,可以使用creall()cimagl()函数。

示例2:我们还可以使用宏I创建复数对象。

// C program to create a complex
// number using macro I
  
#include 
#include 
  
int main(void)
{
    double complex
        z
        = 3.2 + 4.1 * I;
  
    // Creates complex number
    // with 3.2 and 4.1 as
    // real and imaginary parts
    printf(
        "z = %.1f% + .1fi\n",
        creal(z), cimag(z));
}
输出:
z = 3.2+4.1i

相关的功能
头文件还提供了一些内置函数来处理复数。此处的“ arg”代表复数对象。

Function Description
float cabsf(float complex arg)
double cabs(double complex arg)
long double cabsl(long double complex arg)
It returns the absolute value of complex argument
float complex cacosf(float complex arg)
double complex cacos(double complex arg)
long double complex cacosl(long double complex arg)
It returns the complex arc cosine values of complex argument
float complex cacoshf(float complex arg)
double complex cacosh(double complex arg)
long double complex cacoshl(long double complex arg)
It returns the complex arc hyperbolic cosine values of complex argument
float cargf(float complex arg)
double carg(double complex arg)
long double cargl(long double complex arg)
It returns the phase angle of complex argument (in radians).
float complex casinf(float complex arg)
double complex casin(double complex arg)
long double complex casinl(long double complex arg)
It returns the complex arc sine values of complex argument
float complex casinhf(float complex arg)
double complex casin(double complex arg)
long double complex casinl(long double complex arg)
It returns the complex arc hyperbolic sine values of complex argument
float complex catanf(float complex arg)
double complex catan(double complex arg)
long double complex catanl(long double complex arg)
It returns the complex arc tangent values of complex argument
float complex catanhf(float complex arg)
double complex catan(double complex arg)
long double complex catanl(long double complex arg)
It returns the complex arc hyperbolic tangent values of complex argument
float complex ccosf(float complex arg)
double complex ccos(double complex arg)
long double complex ccosl(long double complex arg)
It returns the complex cosine values of complex argument
float complex cexpf(float complex arg)
double complex cexp(double complex arg)
long double complex cexpl(long double complex arg)
It returns the complex value earg where e is the natural logarithm base
float crealf(float complex arg)
double creal(double complex arg)
long double creall(long double complex arg)
It returns the real part of the complex argument
float cimagf(float complex arg)
double cimag(double complex arg)
long double cimagl(long double complex arg)
It returns the imaginary part of the complex argument
float complex clogf(float complex arg)
double complex clog(double complex arg)
long double complex cimagl(long double complex arg)
It returns the imaginary part of the complex argument
float complex conjf(float complex arg)
double complex conj(double complex arg)
long double complex conjl(long double complex arg)
It returns the conjugate of complex argument
float complex cpowf(float complex a, long double complex b) It returns the complex value of ab
float complex csqrtf(float complex arg)
double complex csqrt(double complex arg)
long double complex csqrtl(long double complex arg)
It returns the complex square root of argument

示例3:程序查找复数的共轭。

#include 
#include 
  
int main(void)
{
    double real = 1.3,
           imag = 4.9;
    double complex z
        = CMPLX(real, imag);
    double complex
        conj_f
        = conjf(z);
    printf("z = %.1f% + .1fi\n",
           creal(conj_f),
           cimag(conj_f));
}
输出:
z = 1.3-4.9i

示例4:查找复数的绝对值的程序。

#include 
#include 
  
int main(void)
{
    double real = 1.3,
           imag = 4.9;
    double complex z
        = CMPLX(real, imag);
    printf("Absolute value = %.1f",
           cabsf(z));
}
输出:
Absolute value = 5.1

示例4:程序来查找复数的相角。

#include 
#include 
  
int main(void)
{
    double real = 1.3,
           imag = 4.9;
    double complex z
        = CMPLX(real, imag);
    printf(
        "Phase Angle = %.1f radians\n",
        cargf(z));
}
输出:
Phase Angle = 1.3 radians
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。