ヘロンの公式で三角形の面積を求める
#include <stdio.h> #include <math.h> int main(int argc,char* argv[]){ char buffer[80]; double a,b,c,s,temp,area; fgets(buffer,80,stdin); sscanf(buffer,"%lf %lf %lf",&a,&b,&c); s = (a + b + c)/2; temp = s*(s-a)*(s-b)*(s-c); area = sqrt(temp); printf("%lf\n",area); }
なんてことないプログラムですが、コンパイル時に
undefined reference to 'sqrt' collect2:ld はステータス1で異常終了しました。
というエラーが出ました。
tempの部分を9とかに書き直すとちゃんと出力されて、う〜ん?と思っていたのですが、コンパイル時に-lmオプションをつけていなかったのが原因のようです。
- lはライブラリのリンク、mはライブラリの名前なのだとか。ちょっと勉強になりました。