1. 程式人生 > >C 語言 undefined reference to 'sqrt' 問題解決

C 語言 undefined reference to 'sqrt' 問題解決

題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
1.程式分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後
的結果滿足如下條件,即是結果。請看具體分析:
2.程式原始碼:

#include
#include
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100); /*x為加上100後開方後的結果*/
y=sqrt(i+268); /*y為再加上168後開方後的結果*/
if(x*x==i+100&&y*y==i+268)/*如果一個數的平方根的平方等於該數,這說明此數是完全平方數*/
printf("/n%ld/n",i);
}
}

在編譯的時候,

$gcc test.c –o test

會報錯 undefined reference to 'sqrt'

實際上是沒有連結math數學庫,所以要

$gcc test.c –lm  //-lm就是連結到math庫。

這樣會生成 a.out 檔案。直接執行就可以了

$./a.out

如果你想生成的是一個沒有.out 結尾的可執行程式

$gcc test.c –lm –o test

也就會在目錄下生成 test 檔案。

$./test //試試看