欢迎您 本站地址:  

C 库函数 - pow()

C 标准库 - <math.h> C 标准库 - <math.h>

描述

C 库函数 double pow(double x, double y) 返回 xy 次幂,即 xy

pow() 是 C 标准库 <math.h> 中的一个函数,用于计算一个数的幂。具体来说,它返回的是第一个参数的第二个参数次幂,即 x^y

声明

下面是 pow() 函数的声明。

#include <math.h>

double pow(double x, double y);
float powf(float x, float y);
long double powl(long double x, long double y);

参数

返回值

错误处理

实例

下面的实例演示了 pow() 函数的用法。

实例

#include <stdio.h>
#include <math.h>

int main ()
{
   printf("值 8.0 ^ 3 = %lf\n", pow(8.0, 3));

   printf("值 3.05 ^ 1.98 = %lf", pow(3.05, 1.98));
   
   return(0);
}

让我们编译并运行上面的程序,这将产生以下结果:

值 8.0 ^ 3 = 512.000000
值 3.05 ^ 1.98 = 9.097324

处理多个幂计算

以下示例展示了如何处理多个基数和指数的幂计算:

实例

#include <stdio.h>
#include <math.h>
#include <errno.h>

int main() {
    double bases[] = {2.0, -2.0, 0.0, 2.0};
    double exponents[] = {3.0, 3.0, 0.0, -2.0};
    int num_values = sizeof(bases) / sizeof(bases[0]);

    for (int i = 0; i < num_values; i++) {
        double x = bases[i];
        double y = exponents[i];
        errno = 0;  // 重置 errno
        double result = pow(x, y);

        if (errno == EDOM) {
            printf("Domain error: pow(%f, %f) is not defined\n", x, y);
        } else if (errno == ERANGE) {
            if (result == HUGE_VAL || result == -HUGE_VAL) {
                printf("Range error: pow(%f, %f) results in overflow\n", x, y);
            } else {
                printf("Range error: pow(%f, %f) results in underflow\n", x, y);
            }
        } else {
            printf("pow(%f, %f) = %f\n", x, y, result);
        }
    }

    return 0;
}

让我们编译并运行上面的程序,这将产生以下结果:

pow(2.000000, 3.000000) = 8.000000
pow(-2.000000, 3.000000) = -8.000000
pow(0.000000, 0.000000) = 1.000000
pow(2.000000, -2.000000) = 0.250000

代码解析

使用场景

pow() 函数在许多应用中有广泛的用途,包括但不限于:

总结

pow() 函数用于计算浮点数的幂,是处理幂运算的重要工具。通过合理使用 pow(),可以在科学计算、工程应用和金融分析中实现幂运算,并确保处理好可能的错误情况。

C 标准库 - <math.h> C 标准库 - <math.h>

小库提示

扫描下方二维码,访问手机版。