2008/05/25

Cでのプログラムあれこれ

1つ目のTipsはガウス記号について。
ガウス記号を用いるのにどうすればいいのか、良く知らなかった。
そこでこれまでは、(int)(double x)みたいな書き方をしていた。
こうするとxが正だったら、小数点以下を取ってくれる。
ただし負だと期待した動作にならない。
ただ小数点以下を取ってしまうので、欲しい値よりも+1された値が返ってくる。
具体的には、例えば-2.8は-3になって欲しいのに、-2になってしまう。
なので、正か負かをあらかじめ考えておく必要があった。

実際にはfloor関数を用いればよい。
これはガウス記号とまったく同じ動作をしてくれるので、正負に注意する必要がない。
これは床関数といい、これとは反対に天井関数というものもある。
天井関数はceil関数を用いる。

2つ目はgccについて。
sinとかcosの三角関数を使うようなとき、gccでコンパイルしようとするとエラーを吐く。
これを回避するには、-lmオプションを指定すればいい。

0 件のコメント: