C언어/표준라이브러리

C 언어 math.h 헤더 완전 정리 – 수학 함수 예제와 함께 쉽게 배우기

creator6556 2025. 5. 26. 06:52

1 개념

1) 정의

→ C 표준 라이브러리에서 수학적 계산을 위한 함수들을 제공하는 헤더 파일


2) 역할

→ 삼각함수, 거듭제곱, 로그, 절댓값 등 다양한 수학 연산 기능을 제공


3) 사용법

#include <math.h>

4) GCC 기준 컴파일 옵션

→ 수학 라이브러리를 명시적으로 링크

gcc program.c -lm

5) 주의사항

→ 대부분의 수학 함수는 double을 반환하므로, 변수 선언도 double형으로 하는 것이 좋음

→ 삼각 함수의 입력값은 라디안 단위이므로, 각도를 사용할 경우 반드시 라디안으로 변환

→ GCC 사용 시 -lm 옵션 필수


2 sqrt()

→ 제곱근 함수이며, x는 0 또는 양수일 때 x의 제곱근을 반환

double sqrt(double x);

1-1 코드

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

int main() {
    double num = 25.0;

    printf("%.2f의 제곱근은 %.2f\n", num, sqrt(num));

    return 0;
}

1-1 결과


3 pow()

→ 거듭제곱 함수이며, base를 exponent만큼 거듭제곱한 결과를 반환

double pow(double base, double exponent);

2-1 코드

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

int main() {
    printf("2의 3제곱은 %.2f\n", pow(2.0, 3.0));

    return 0;
}

2-1 결과


4 fabs()

→ 절댓값 함수이며, x의 절댓값을 반환

double fabs(double x);

3-1 코드

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

int main() {
    printf("-12.5의 절댓값은 %.2f\n", fabs(-12.5));

    return 0;
}

3-1 결과


5 sin(), cos(), tan()

→ 삼각함수이며, 각각 사인, 코사인, 탄젠트를 반환

→ 각도를 라디안으로 변환 후 사용

4-1 코드

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

#define PI 3.14

int main() {
    double degree = 90.0;
    double radian = degree * PI / 180.0;

    printf("sin(%.2f도): %.2f\n", degree, sin(radian));
    printf("cos(%.2f도): %.2f\n", degree, cos(radian));
    printf("tan(%.2f도): %.2f\n", 45.0, tan(45.0 * PI / 180.0));

    return 0;
}

4-1 결과


6 ceil(), floor(), round()

→ 각각 올림, 내림, 반올림을 반환

5-1 코드

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

int main() {
    printf("ceil(5.5)  = %.2f\n", ceil(5.5));
    printf("floor(5.5) = %.2f\n", floor(5.5));
    printf("round(5.5) = %.2f\n", round(5.5));

    return 0;
}

5-1 결과


7 log(), log10()

→ 각각 자연로그와 상용로그를 반환

6-1 코드

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

int main() {
    double num = 100.0;

    printf("자연로그(log): %.2f\n", log(num));
    printf("상용로그(log10): %.2f\n", log10(num));

    return 0;
}

6-1 결과


C언어 math.h에 대해 더 상세한 설명과 예시를 알고 싶은 분들은 아래 링크로 접속

https://m.blog.naver.com/math717/223697282021


C언어의 다른 기능 혹은 다른 프로그래밍 언어에 대해 알고 싶은 분들은 아래 링크에 접속하여 원하는 링크에 접속

https://m.blog.naver.com/math717/223839406931