본문 바로가기

프로그램언어/C언어

c언어 수학관련 함수

수학관련 함수는 math.h 헤더파일을 추가하여 사용할 수 있습니다. 

수학관련 함수중 알아두면 유용한 함수들에서 알아 보도록 하겠습니다.

 

함수 설명
int abs(int x) 주어진 정수 x의 절대값을 구함
double sqrt(doublt x); 제곱근을 구함
double pow(double x, double y) x의 y승을 구함
double ceil(double x) x보다 작지 않은 가장 작은 정수를 구함
double floor(double x) x보다 크지 않은 가장 큰 수를 구함
double fabs(double x) 주어진 실수 x의 절대값을 구함
double fmod(double x, double y) x를 y로 나눈 나머지를 구함
double exp(double x) e의 x승를 구함
double frexp(double x, int *exp) 지수를 exp가 가리키는 변수에 저장하고 가수를 구함
double log(double x) 자연로그 x를 구함
double log10(double x) 상용로그 x를 구함
소스코드 실행 결과
#include <stdio.h>
#include <math.h>

int main(void) 
{ 
    int x, ret; 

    x = -5; 
    ret = abs(x);   // 정수x의 절대값을 구함 
    printf("abs(%d) = %d\n", x, ret); 

    return 0; 
}
abs(-5) = 5
int main(void) 
{ 
    double x, ret; 
    double n; 

    x = 2.0; 
    ret = sqrt(x);    // 제곱근을 구함 
    printf("sqrt(%f) : %g\n\n", x, ret); 

    x = 2.0; 
    ret = pow(x, 3);    // 거듭제곱을 구함 x의 3승으로 8 
    printf("pow(%f, %d) : %f\n\n", x, 3, ret); 

    x = 3.141592; 
    ret = ceil(x);    // x보가 작지 않은 가장 작은 정수를 구함 
    printf("ceil(%f) : %f\n\n", x, ret); 

    x = 3.141592; 
    ret = floor(x);    // x보가 크지 않은 가장 큰 수를 구함 
    printf("floor(%f) : %f\n\n", x, ret); 

    x = -3.141592; 
    ret = fabs(x);    // 실수의 절대값을 구함 
    printf("fabs(%f) : %f\n\n", x, ret); 

    x = -14.876; 
    ret = modf(x, &n);    // 부동 소주점값을 소수와 정수부분으로 분활 
    printf("modf(%f, %.f) : %f\n\n", x, n, ret); 

    x = -11; 
    n = 3.0; 
    ret = fmod(x, n);    // 부동 소수점의 나머지를 구함 
    printf("modf(%f, %f) : %f\n\n", x, n, ret); 

    x = 1.0; 
    ret = exp(x);    // 지수 값을 구함 
    printf("exp(%f) : %f\n\n", x, ret); 

   int k; 
    x = -16.4; 
    ret = frexp(x, &k);    //지수릴 k가 가리키는 변수에 저장하고 가수를 구함 
    printf("frexp(%f, &n) : %f, k = %d\n\n", x, ret, k); 
 
    x = 10.0; 
    ret = log(x);    // 자연로그 값을 구함 
    printf("log(%f) : %f\n\n", x, ret); 

    x = 10.0; 
    ret = log10(x);    // 상용로그 값을 구함 
    printf("log10(%f) : %g\n\n", x, ret); 

    return 0; 
}