首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言入門

C 語言開平方根:sqrt 函數用法

     編輯:C 語言入門

標準庫函數

#include <math.h>
// double sqrt(double x); // 回傳 √x,x < 0 定義域錯誤,回傳 NaN

基本範例

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

int main() {
    double x = 4.0;
    double result = sqrt(x);
    printf("√%.2f = %.2f\n", x, result); // √4.00 = 2.00

    // 編譯需連結數學庫
    // gcc main.c -o main -lm
    return 0;
}

關鍵細節

  • 頭文件:<math.h>。
  • 連結選項:GCC/Clang **必須加 -lm**(libm),MSVC 預設連結。
  • 定義域:x >= 0。負數輸入行為:C99 回傳 NaN 並設定 errno = EDOM。
  • 精度:雙精度約 15-17 位有效數字。
  • 變體:sqrtf(float)、sqrtl(long double)(C99)。

進階:整數開根與判斷完全平方數

// 整數開根(向下取整)
long long isqrt(long long x) {
    long long r = (long long)sqrt((double)x);
    while ((r+1)*(r+1) <= x) ++r;
    while (r*r > x) --r;
    return r;
}

// 判斷完全平方數
bool isPerfectSquare(long long x) {
    if (x < 0) return false;
    long long r = isqrt(x);
    return r*r == x;
}

總結

sqrt 是標準庫提供的高效、精確開根函數。記住 #include <math.h> 與 -lm 連結選項,注意定義域與浮點數精度特性即可正確使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved