【C言語入門】math.hライブラリの主要な数学関数を徹底解説!sin・cos・pow・sqrtの使い方
C言語では、三角関数をはじめとする数学関連の関数が math.h ヘッダーファイルにまとめて定義されています。これらの関数を利用するには、プログラムの先頭で #include <math.h> と宣言する必要があります。
本記事では、実務や学習で特によく使われる主要な数学関数について、構文・使用例・実行結果を交えながら詳しく解説します。
sin() ― 正弦(サイン)を求める
引数として渡した値(ラジアン)の正弦(サイン)値を計算して返します。
構文は以下の通りです。
double sin(double a);
使用例:
double a = sin(3.14 / 2);
実行結果:
a = 1(近似値)
cos() ― 余弦(コサイン)を求める
引数の余弦(コサイン)値を計算します。
構文は以下の通りです。
double cos(double a);
使用例:
double a = cos(3.14 / 2);
実行結果:
a = 0(近似値)
tan() ― 正接(タンジェント)を求める
引数の正接(タンジェント)値を計算します。
構文は以下の通りです。
double tan(double a);
使用例:
double a = tan(3.14 / 2);
なお、π/2 に近い値を渡すとタンジェントは発散するため、この例では非常に大きな値(約1255)が返されます。
exp() ― 自然対数の底eのべき乗を求める
e(ネイピア数:約2.71828)を引数乗した値を計算します。
構文は以下の通りです。
double exp(double a);
使用例:
double a = exp(4.6);
この場合、a には約99.48が代入されます。
floor() ― 小数点以下を切り捨てる
浮動小数点数を切り捨て、引数以下の最大の整数値を返します。
構文は以下の通りです。
double floor(double a);
使用例:
double a = floor(93.58);
実行結果:
a = 93
ceil() ― 小数点以下を切り上げる
浮動小数点数を切り上げ、引数以上の最小の整数値を返します。
構文は以下の通りです。
double ceil(double a);
使用例:
double a = ceil(93.58);
実行結果:
a = 94
abs() ― 整数の絶対値を求める
整数の絶対値を計算します。負の値を渡した場合は正の値が返されます。
構文は以下の通りです。
int abs(int a);
使用例:
int a = abs(-6);
実行結果:
a = 6
補足: abs() は厳密には math.h ではなく stdlib.h で定義されています。また、浮動小数点数の絶対値を求めたい場合は、math.h の fabs() 関数を使用してください。
pow() ― べき乗を求める
第1引数を第2引数乗した値を計算します。
構文は以下の通りです。
double pow(double a, double b);
使用例:
double x = pow(2, 3);
実行結果:
x = 8
sqrt() ― 平方根を求める
引数の平方根を計算します。負の値を渡すとエラー(NaN)になるため注意が必要です。
構文は以下の通りです。
double sqrt(double a);
使用例:
double x = sqrt(36);
実行結果:
x = 6
まとめ
math.h には、三角関数(sin・cos・tan)、指数・対数関数(exp・log)、数値処理関数(floor・ceil・pow・sqrt)など、科学技術計算に欠かせない関数が多数用意されています。それぞれの戻り値は基本的に double 型である点、引数はラジアン単位で指定する点を押さえておくと、より正確に活用できます。ぜひ実際にコードを書いて、各関数の挙動を確認してみてください。
-
C言語のポインタ演算とは?宣言・初期化から算術演算の基本までわかりやすく解説
ポインタ(pointer)とは、他の変数のメモリアドレスを格納するための変数です。C言語においてポインタは非常に重要な概念であり、配列や文字列の操作、関数間でのデータ受け渡しなど、さまざまな場面で活用されます。本記事では、ポインタの宣言・初期化の方法と、ポインタを使った算術演算について詳しく解説します。ポインタの宣言・初期化・アクセスまず、次のような文を例に考えてみましょう。int qty = 179;この文では、整数型変数 qty を宣言し、179 という値で初期化しています。変数 qty はメモリ上のどこかに配置され、そこに値が保存されます。ポインタの宣言int *p;ここで「p」はポイン
-
構造体の概念で理解するC言語のビットフィールド|定義方法と範囲の計算を徹底解説
ビットフィールドとはビットフィールドとは、変数が占めるメモリのサイズをビット単位で指定できるC言語の機能です。通常は構造体(struct)の中で定義されます。ビットフィールドの基本:1バイト=8ビット記述例struct info { int x : 2; };この例では、メンバxは2ビットを占有します。ビットフィールド使用時の注意点ビットフィールドの範囲外の値を代入することはできません(その場合の動作は保証されません)。sizeof演算子やアドレス演算子(&)をビットフィールドに適用できないため、scanf関数で値を入力することもできません。ビットフィールドに指定できるデータ型