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 명령어를 실행시킬 수 있으며, 운영체제에 의존적임.
이러한 것들이 있습니다.
여기까지 수학 함수와 기타 자주 쓰이는 함수들에 대하여 알아보는 시간을 가졌습니다.
다음 포스팅에서는 지금까지 배운 것들을 이용하여 코딩 실력을 향상하기 위해 문제들을 풀어보는 시간을 가져보겠습니다.
긴 글 읽어주신 독자분들께 진심으로 감사드립니다 ~
'c언어' 카테고리의 다른 글
c언어 지역 변수 알아보기 (0) | 2022.12.06 |
---|---|
c언어 사용자 정의 함수 이용하여 문제 풀기(생일 축하 메시지 보내기, 정수 입력 함수(get_integer()) 사용하기, 정수의 합 계산(add()) 함수 사용하기, 팩토리얼 계산하기, 온도 변환하기(화씨 -> 섭.. (0) | 2022.12.06 |
c언어 라이브러리 함수(내장 함수) 알아보기 1(난수 함수) (0) | 2022.12.06 |
c언어 함수 원형 이용해 보기 (0) | 2022.12.04 |
c언어 사용자 정의 함수의 매개 변수 이용 방법과 반환 값 올바르게 받는 법 알아보기 (0) | 2022.12.04 |
댓글