首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言計算 ln(e) = 1:scanf 無法識別 expf(1),需輸入 2.71828 或用 M_E 常量

     編輯:程式設計綜合問答

代碼 `scanf("%lf", &i);` 讀入 `expf(1)` 會被當作 0,導致 `logf(0)` 域錯誤。

正確測試代碼

#include 
#include 

int main() {
    double i = M_E; // math.h 定義的 e 常量,約 2.718281828459045
    double x = log(i); // 自然對數
    printf("%.6f\n", x); // 輸出 1.000000
    return 0;
}

手動輸入測試

double i;
scanf("%lf", &i); // 輸入 2.71828
printf("%lf\n", log(i)); // 輸出 0.999999...

**結論**:`scanf` 只識別數字字面量,不支援數學表達式。程式中直接用 `M_E` 或 `exp(1.0)` 獲取 e 值。

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