C 库 - cabs() 函数

❮ C 标准库 - <complex.h>


C 复数 库中的 cabs() 函数用于获取 z 的复数绝对值(也称为范数、模或幅值)。

此函数取决于 z(复数)的类型。如果 z 是"float"类型或浮点虚数,我们可以使用 cabsf() 来获取绝对值。对于 long double 类型,请使用 cabsl();对于 double 类型,请使用 cabs()

语法

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

double cabs( double complex z );

参数

此函数接受单个参数 -

  • Z - 它表示一个复数,我们需要计算其绝对值。

返回值

如果没有错误,此函数将返回 z 的绝对值(范数,模)。

示例 1

以下是一个简单的 C 程序,演示如何使用 cabs() 获取复数 (z) 的绝对值。

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

int main(void) {
   double complex z = 3.5 + 2.21 * I;
   double result = cabs(z);
   printf("cabs(%.2f + %.2fi) = %.3f", creal(z), cimag(z), result);
   return 0;
}

输出

以下是输出 -

cabs(3.50 + 2.21i) = 4.139

示例 2

我们来看另一个示例,我们使用 CMPLX() 创建一个复数。然后使用 cabs() 函数获取该复数的绝对值。

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

int main() {
   double real = 5.0;
   double imag = 6.0;

   // 使用 CMPLX 函数创建复数
   double complex z = CMPLX(real, imag);
   printf("The complex number is: %.2f + %.2fi", creal(z), cabs(z));

   // 使用 cabs()
   double absolute_val = cabs(z);
   printf("The magnitude of z: %.2f", absolute_val);

   return 0;
}

输出

以下是输出 -

The complex number is: 5.00 + 7.81i
The magnitude of z: 7.81

示例 3

以下示例使用 cabs() 函数计算结果复数的绝对值。

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

int main() {
    long double complex z1 = 3.0 + 5.0 * I;
    long double complex z2 = 4.0 + 3.0 * I;

    // 两个复数的差
    long double complex z = z2 - z1;

    printf("z: %.1Lf + %.1Lfi", creall(z), cimagl(z));
    printf("Complex Absolute value: %.2Lf", cabsl(z));

    return 0;
}

输出

以下是输出 -

z: 1.0 + -2.0i
Complex Absolute value: 2.24

❮ C 标准库 - <complex.h>