C 库 - csqrt() 函数

❮ C 标准库 - <complex.h>


C complex 库中的 csqrt() 函数用于计算 z(复数)的 sqrt(平方根),分支切割沿负实轴进行。

此函数取决于 z(复数)的类型。如果 z 是"float"类型,我们可以使用 csqrtf() 来计算复数平方根。对于 long double 类型,请使用 csqrtl();对于 double 类型,请使用 csqrt()

语法

以下是 csqrt() 函数的 C 库语法 -

double complex csqrt( double complex z );

参数

此函数接受单个参数 -

  • Z - 它表示一个复数,我们需要计算它的平方根。

返回值

此函数返回 z 的平方根。它应位于右半平面(包括虚轴)的范围内:沿实轴为 [0, +∞),沿虚轴为 (∞, +∞)。

示例 1

以下是一个简单的 C 程序,用于演示如何对复数使用 csqrt()

#include <stdio.h>
#include <complex.h>

int main() {
    double complex z = 3.0 + 4.0 * I;
    
    // 计算 z 的平方根
    double complex result = csqrt(z);
    printf("z 的复数平方根:%.2f%+.2fi", creal(result), cimag(result));
    
    return 0;
}

输出

以下是输出 -

z 的复数平方根:2.00+1.00i

示例 2

我们来看另一个示例,使用 csqrt() 函数计算负实数的平方根。

#include <stdio.h>
#include <complex.h> 
int main(void)
{
    double complex z1 = csqrt(-4);
    printf("-4 的平方根是 %.1f%+.1fi", creal(z1), cimag(z1));
}

输出

以下是输出 -

-4 的平方根是 0.0+2.0i

示例 3

以下程序定义一个复数 z = 4.0i,并使用 csqrt() 函数计算其平方。

#include <stdio.h>
#include <complex.h>

int main() {
   double complex z = 4.0*I; 
   //使用 csqrt()
   double complex res = csqrt(z);
   printf("csqrt(%.2f + %.2fi) = %.2f + %.2fi", creal(z), cimag(z), creal(res), cimag(res));
   return 0;
}

输出

以下是输出 -

csqrt(0.00 + 4.00i) = 1.41 + 1.41i

❮ C 标准库 - <complex.h>