① c語言中的開方
頭文件:#include <math.h>
sqrt() 用來求給定值的平方根,其原型為:double sqrt(double x);double sqrt(double x)。
x 為要計算平方根的值。
如果 x < 0,將會導致 domain error 錯誤,並把全局變數 errno 的值為設置為 EDOM。
返回 x 平方根。注意,使用 GCC 編譯時請加入-lm。實例計算200 的平方根值。
例子:
#include <math.h>main(){double root;root = sqrt(200);printf("answer is %f ", root);}
輸出結果:answer is 14.142136。
(1)gcc編譯math擴展閱讀:
使用sqrt函數需要注意的事項:
1、sqrt函數運行的是結果是算術平方根,即不能運算處負數值,也不能輸出虛數結果。如需要得到算術平方根中的負數值,則應該在sqrt函數前添加負號。
2、sqrt函數的參數必須是非負數值,如果是負數值,則輸出會報錯,即數值無效;如果參數是未定義的非數字變數,則按回車後也會報錯,即變數名有誤。
3、sqrt函數的計算精度與C語言設置的精度有關,可以通過設置更改精度。
② 求發一下,C語言的頭文件math.h
dev c++是個集成環境,裡面默認用的是TDM-GCC或者minGW-GCC(當然你改成VC也是可以的,多數情況下是沒人想改的),所以你要找的math.h頭文件應該是GCC的頭文件,可以在github上面找到gcc再找math.h。(文件不算復雜,其實可以直接列在這里,一共才30行不到,有意義的部分才6行)
以下5行是gcc的math.h(太短了,以致於我不想發郵件)
#ifndef __GCC_MATH_H
#define __GCC_MATH_H
#define __HEADER_TO_WRAP <math.h>
#include <_yvals-wrapper.h>
#endif
③ 編寫程序的時候需要開平方根,在linux平台的gcc編譯器下調用了math函數,但是運行的時候報錯
用-lm把數學庫鏈接進去。
④ c語言一調用math.h會彈出這個,為什麼
1,fmod是有的,這是它在math.h的聲明:double fmod(double x, double y); 2,你需要在makefile文件中找到CC=gcc這一行,在gcc後面加入" -lm",與gcc之間有個空格。或者在CFLAGS(如果有的話)後面加-lm也行。
⑤ 我的gcc不知道怎麼回事,不能鏈接math.h
你在 Linux 系統下對含有數學函數的 C 語言源程序進行編譯時,必須在命令行編譯時要加上:-LIBmath.LIB 選項(假設數學庫的文件名是:math.LIB。至於說具體的數學庫文件名我已經不太記得了,你可以在你的Linux系統裡面查找一下,具體的數學庫文件名到底是哪一個)。否則的話,就不能夠正確編譯 C 語言源程序!
⑥ Linux習題,能將當前庫函數文件libmymath.a鏈接到可執行程序的gcc命令是
gcc main.o -lmymath -L庫文件路徑
⑦ gcc編譯帶math.h的程序,加-lm參數也沒用
是不是環境變數
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
沒設好。
-----------
例如:
C 程序要求
$ C_INCLUDE_PATH=/opt/gdbm-1.8.3/include
$ export C_INCLUDE_PATH
C++ 程序要求
$ CPLUS_INCLUDE_PATH=/opt/gdbm-1.8.3/include
$ export CPLUS_INCLUDE_PATH
-----
編譯時,命令行可以用 -I 添加路徑 /usr/local/include 或 /usr/include -- 看你的include安裝在哪裡。
⑧ linux中用gcc編譯出現err:對『ceil』未定義的引用
#include <math.h>
⑨ C語言 ubuntu GCC編譯 包含了math。h 仍提示undefined reference to 'log' 'exp'
函數庫未安裝或者未配置好
⑩ gcc請教,問題如下:
使用math.h中聲明的庫函數還有一點特殊之處,gcc命令行必須加-lm選項,因為數學函數位於libm.so庫文件中(這些庫文件通常位於/lib目錄下),-lm選項告訴編譯器,我們程序中用到的數學函數要到這個庫文件里找。本書用到的大部分庫函數(例如printf)位於libc.so庫文件中,使用libc.so中的庫函數在編譯時不需要加-lc選項,當然加了也不算錯,因為這個選項是gcc的默認選項。