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

C 語言求絕對值:fabs 函數與手動實現雙方案

     編輯:關於C語言

標準庫方案

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

int main() {
    double x;
    while (scanf("%lf", &x) != EOF)
        printf("%.2lf\n", fabs(x));  // 雙精度絕對值
    return 0;
}
  • fabs 專用於 double,返回 double
  • abs 用於 int,labs 用於 long
  • 輸出格式 %.2lf 保留兩位小數

手動實現(無需 math.h)

double my_fabs(double x) {
    return x >= 0 ? x : -x;
}

// 或用位運算(IEEE 754)
double bit_fabs(double x) {
    unsigned long long *p = (unsigned long long*)&x;
    *p &= 0x7FFFFFFFFFFFFFFF;  // 清除符號位
    return x;
}

注意事項

  • 整數 INT_MIN 絕對值溢出(無對應正數),浮點數無此問題
  • 編譯需鏈接數學庫:gcc -lm
  • 輸入直到 EOF,適配管道/文件重定向
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved