math.h (Fukuoka University of Education)
math.h について
math.hの利用方法

平方根や三角関数など数学で用いられる関数をC言語で使いたいことがあります。
その際、 #include <stdio.h> のような「おまじない」を書けばいくつか使うことができます。
例えばmath.hを利用して√2を出力する際は以下のようにします。

#include <stdio.h>
#include <math.h>

int main(void){

  printf("√2=%f\n", sqrt(2.0));
  return (0);
}
プログラムの中でsqrt(2.0)としています。sqrtは引数2.0がdouble型で、 sqrt(2.0)の値もdouble型であることに注意してください。
math.hでは他にも多くの関数が用意されていますが、 全て「double型で受けてdouble型を返す」ものとなっています。

math.hに含まれている関数

実際のプログラム

math.hを用いた実際のプログラム

#include <stdio.h>
#include <math.h>

int main(void){
  double x = 2.0, y = -3.0;

  // べき、平方根
  printf("\n*** ベキ、平方根 ***\n");
  printf("|%f|=%f\n", y, fabs(y));
  printf("%f^(%f)=%f\n", x,y, pow(x,y));
  printf("√%f=%f\n", x, sqrt(x));
  printf("%f^(1/3)=%f\n", x, cbrt(x));
  
  // 三角関数
  double t = M_PI/3.0; 
  double s = 1.0;
  printf("\n*** 三角関数 ***\n");
  printf("sin(%f)=%f\n", t, sin(t));
  printf("cos(%f)=%f\n", t, cos(t));
  printf("tan(%f)=%f\n", t, tan(t));
  printf("asin(%f)=%f\n", s, asin(s));
  printf("acos(%f)=%f\n", s, acos(s));
  printf("atan(%f)=%f\n", s, atan(s));
  printf("sinh(%f)=%f\n", t, sinh(t));
  printf("cosh(%f)=%f\n", t, cosh(t));
  printf("tanh(%f)=%f\n", t, tanh(t));

  // 指数関数、対数関数
  printf("\n*** 指数関数、対数関数 ***\n");
  printf("exp(%f)=%f\n", x, exp(x));
  printf("expm1(%f)=%f=%f\n", x, expm1(x), exp(x)-1 );
  printf("log(%f)=%f\n", x, log(x));
  printf("log10(%f)=%f\n", x, log10(x));

  // 定数関係
  printf("\n*** 定数関係 ***\n");
  printf("e=%f\n", M_E);
  printf("π=%f\n", M_PI);
  return (0);
}

連絡先: 中田研究室の場所、連絡先