C 求平方根

在 C 语言中,我们可以使用 <math.h> 标准库提供的 3 种函数来求一个数的平方根,如下表所示。

C 求平方根的函数
函数 说明
sqrt() 求 “双精度浮点数(double)” 的平方根
sqrtf() 求 “单精度浮点数(float)” 的平方根(C99 标准新增)
sqrtl() 求 “长双精度浮点数(long double)” 的平方根(C99 标准新增)

注意: sqrt()、sqrtf()、sqrtl() 这 3 个函数都定义在 <math.h> 头文件中,因此我们在使用之前需要使用 #include <math.h> 引入该头文件。

sqrt() 求 “双精度浮点数(double)” 的平方根

在 C 语言中,我们可以使用 <math.h> 标准库的 sqrt() 函数来求一个 “双精度浮点数(double)” 的平方根。

语法:

sqrt(x)

说明:

sqrt() 函数接收单个参数。

  • x(double):是一个双精度浮点数。

如果 x 是负数,sqrt() 函数将发生域错误,通常返回 NaN (Not a Number)。

示例 1:

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

int main(void)
{
    double a = 4.0;
    double b = 25.0;
    double c = 2.0;

    printf("%f 的平方根是:%f\n", a, sqrt(a));
    printf("%f 的平方根是:%f\n", b, sqrt(b));
    printf("%f 的平方根是:%f\n", c, sqrt(c));

    return 0;
}

运行结果如下。

4.000000 的平方根是:2.000000
25.000000 的平方根是:5.000000
2.000000 的平方根是:1.414214

sqrtf() 求 “单精度浮点数(float)” 的平方根

在 C99 标准中,我们可以使用 <math.h> 标准库的 sqrtf() 函数来求一个 “单精度浮点数(float)” 的平方根。

语法:

sqrtf(x)

说明:

sqrtf() 函数接收单个参数。

  • x(float):是一个单精度浮点数。

如果 x 是负数,则 sqrtf() 函数会返回 NaN。

示例 2:

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

int main(void)
{
    float a = 9.0f;
    float b = 16.0f;

    printf("%f 的平方根是:%f\n", a, sqrtf(a));
    printf("%f 的平方根是:%f\n", b, sqrtf(b));

    return 0;
}

运行结果如下。

9.000000 的平方根是:3.000000
16.000000 的平方根是:4.000000

sqrtl() 求 “长双精度浮点数(long double)” 的平方根

在 C99 标准中,我们可以使用 <math.h> 标准库的 sqrtl() 函数来求一个 “长双精度浮点数(long double)” 的平方根。

语法:

sqrtl(x)

说明:

sqrtl() 函数接收单个参数。

  • x(long double):是一个长双精度浮点数。

如果 x 是负数,sqrtf() 函数将返回 NaN。

示例 3:

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

int main(void)
{
    long double a = 16.0L;
    long double b = 64.0L;

    printf("%Lf 的平方根是:%Lf\n", a, sqrtl(a));
    printf("%Lf 的平方根是:%Lf\n", b, sqrtl(b));

    return 0;
}

运行结果如下。

16.000000 的平方根是:4.000000
64.000000 的平方根是:8.000000

上一篇: C 绝对值

下一篇: C 随机数

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号