본문 바로가기
c언어

c언어 라이브러리 함수(내장 함수) 알아보기 2(수학 함수, 기타 함수)

by 개발자 L 2022. 12. 6.
반응형

c언어 라이브러리 함수(내장 함수) 알아보기 2(수학 함수, 기타 함수)

네 안녕하세요, 이번 포스팅에서는 수학 관련 함수를 한 번 알아보도록 하겠습니다.

실제로 c언어는 수학적인 분야에서 정말 많이 씁니다.

그 이유는 연산 속도가 매우 빠르기 때문입니다.

그래서 큰 단위의 수학 연산이 들어갈 경우에는 인터프리터 언어(대화형 언어)인 파이썬보다 컴파일 언어인 c언어가 훨씬 빠릅니다.

그 이유는 파이썬은 줄 하나하나를 실행을 시키는데, c언어는 전체적으로 컴파일러가 스태킹을 한 후에 한 번에 실행을 시키기 때문입니다.

그럼 이제 수학 함수에 대하여 한 번 알아보도록 하겠습니다.

 

1. 수학 함수의 사용법과 종류

사실 수학 함수는 정말 고급 기능을 요하는 수학 분야나 데이터 분석 등을 하지 않는다면 사용을 잘 안 하기는 합니다.

그래서 고급 산술 함수들은 간단히 표로 정리를 할 거고, 그 외에 자주 쓰는 수학 관련 함수들과 기타 함수들을 설명하겠습니다.

아래는 고급 산술 함수들의 표입니다.

분류 함수 설명
삼각함수 double sin(double x) 사인 함수
double cos(double x) 코사인 함수
double tan(double x) 탄젠트 함수
역삼각함수 double asin(double x) 역사인 함수
double acos(double x) 역코사인 함수
double atan(double x) 역탄젠트 함수
쌍곡선함수 double sinh(double x) 쌍곡선 사인 함수
double cosh(double x) 쌍곡선 코사인 함수
double tanh(double x) 쌍곡선 탄젠트 함수
지수함수 double exp(double x) e^x
double lo(double x) logex(e는 지수)
double log10(double x) log10x(10은 지수)
기타함수 double ceil(double x) x보다 작지 않은 가장 작은 정수
double floor(double x) x보다 크지 않은 가장 큰 정수
double fabs(double x) 실수 x의 절댓값
int abs(int x) 정수 x의 절댓값
double pow(double x, double y) 제곱
double sqrt(double x) 제곱근

이렇게 있습니다.

이 중에서 좀 자주 쓰이는 함수들만 골라서 한 번 이야기를 해보도록 하겠습니다.

 

1 - 1. floor(), ceil() 함수

floor()과 ceil() 함수는 각각 바닥 값, 천장 값이라고 합니다.

이 둘은 실수를 아래 정수값으로 밀어 내리거나(바닥 값), 바로 위 정수 값으로 밀어 올립니다.(천장 값)

예를 들어서 2.3이라는 숫자가 있다고 가정을 해봅시다.

이 수의 바닥 값을 구하라고 그러면 2.3의 바로 아래 숫자인 2가 바닥 값이 되는 것이고,

천장 값을 구하라고 한다면 2.3 바로 위의 숫자인 3이 천장 값이 되는 것입니다.

사용 방법은 이렇습니다.

// 바닥값 적용
result = floor(value);

// 천장값 적용
result = ceil(value);

이렇게 쓸 수 있고,

보통 value는 초기값을 선언해서 씁니다.

반응형

 

1 - 2. fabs() 함수, abs() 함수

fabs() 함수는 실수의 절댓값을 받는 함수, abs() 함수는 정수의 절댓값을 받는 함수입니다.

보통 절댓값은 어떤 값의 차이 계산을 할 때 주로 씁니다.

이를테면 거리, 나이, 무게, 개수 등이 여기에 포함이 됩니다.

사용 방법은 이러합니다.

// 실수의 절댓값 받기
printf("실수 9.0의 절댓값은 %f입니다.\n", fabs(9.0));

// 정수의 절댓값 받기
printf("정수 -4의 절댓값은 %d입니다.\n", abs(-4));

 

1 - 3. pow(), sqrt() 함수

pow() 함수와 sqrt() 함수는 각각 제곱과 제곱근을 다루는 함수입니다.

그래서 둘은 떼어낼 수 없는 관계에 있습니다.

이렇게 쓸 수 있습니다.

// 제곱 구하기
printf("100의 3제곱은 %.0f입니다.\n", pow(100.0, 3.0));

//제곱근 구하기
printf("3의 제곱근은 %.0f입니다.\n", sqrt(3));

보통 수학 관련 함수들은 다들 캐스팅을 하여 쓰는 경우가 허다합니다.

 

1 - 4. 삼각 함수(sin(double x), cos(double x), tan(double x))

삼각 함수의 값을 계산할 때 쓰는 함수입니다.

각도는 라디안으로 계산이 되며, 1 라디안은 180 / 원주율(파이)입니다.

사용법은 이렇습니다.

// 사인 함수
printf("sin(%f) = %f\n", a, b);

// 코사인 함수
printf("cos(%f) = %f\n", a, b);

// 탄젠트 함수
printf("tan(%f) = %f\n", a, b);

이런 식으로 씁니다.

 

2. 기타 함수

그 외 여러 가지 함수들이 존재를 하는데, 

특수한 함수들 중에 좀 많이 쓰는 함수들만 소개를 시켜드리도록 하겠습니다.

  • exit(int status) 함수 : 호출 시 프로세스를 종료시킴, 보통 1을 인수로 가지며, 1이 나오면 오류가 생겼음을 의미함.
  • int system(const char *command) : 문자열 인수를 운영 체제의 cmd에 전달하여 실행시키는 함수이며, cmd에서 쓰는 DOS 명령어를 실행시킬 수 있으며, 운영체제에 의존적임.

이러한 것들이 있습니다.

 

여기까지 수학 함수와 기타 자주 쓰이는 함수들에 대하여 알아보는 시간을 가졌습니다.

다음 포스팅에서는 지금까지 배운 것들을 이용하여 코딩 실력을 향상하기 위해 문제들을 풀어보는 시간을 가져보겠습니다.

긴 글 읽어주신 독자분들께 진심으로 감사드립니다 ~

반응형

댓글