안녕하세요. BlockDMask 입니다
오늘은 (저는) 자주 쓰지는 않지만 꼭 알아둬야하는 함수를 두개 묶어서 가지고왔습니다.
바로 pow, sqrt 함수인데요. 중학교때 제곱과 제곱근(루트) 배우셨죠?
그걸이제 C언어, C++에서 사용해 볼겁니다! 그럼 시작해보겠습니다.
1. C/C++ pow 함수 원형과 사용법
- 헤더파일 : C언어 <math.h> / C++ <cmath>
- C언어에서의 함수 원형 : double pow(double base, double n)
- C++11에서의 함수 원형
1. double pow(double base, double n)
2. float pow(float base, float n)
3. long double pow(long double base, long double n)
(C++에서는 함수 오버로딩이 가능하기 때문에 같은 이름의 함수라도 매개변수를 다르게 선언할 수 있습니다.)
- pow 함수가 하는일 : base가 되는 숫자의 n 제곱을 구하는 것입니다.
(base의 n승이라고도 표현하고, 기호로는 base ^ n 으로도 표현합니다.)
- 저희한테 익숙한 표현방법은 이것이죠 :
- pow 함수 사용법
1) 10의 2제곱을 구한다고 했을 때.
-> pow(10, 2)
// 암묵적 형변환에 의해서 10은 (float)10 이런식으로 들어갈 것 입니다.
2) 2.2의 3.3 제곱을 구한다고 했을 때.
-> pow(2.2, 3.3)
2. pow 함수 예시
1) 소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //C언어만 사용하시는 분들은 해당 헤더만 포함하세요. //#include<stdio.h> //#include<math.h> //C++용 헤더 #include<iostream> #include<cmath> using namespace std; int main(void) { printf("> C언어\n"); printf("10 ^ 2 = %f\n", pow(10, 2)); printf("2.2 ^ 3.3 = %f\n\n", pow(2.2, 3.3)); //아래는 C++사용자들을 위한 코드 입니다. cout << "> C++" << endl; cout << "10 ^ 2 = " << pow(10, 2) << endl; cout << "2.2 ^ 3.3 = " << pow(2.2, 3.3) << endl; system("pause"); return 0; } | cs |
2) 결과
3. C/C++ sqrt 함수 원형과 사용법
- 헤더파일 : C언어 <math.h> / C++ <cmath>
- C언어에서의 함수 원형 : double sqrt(double x)
- C++11에서의 함수 원형
1. double sqrt(double x)
2. float sqrt(float x)
3. long double sqrt(long double x)
4. double sqrt(T x) // T는 template를 뜻합니다. (template는 아래 링크 남겨두겠습니다.)
(C++에서는 함수 오버로딩이 가능하기 때문에 같은 이름의 함수라도 매개변수를 다르게 선언할 수 있습니다.)
- sqrt 함수가 하는일 : 매개변수 x로 들어온 숫자에 루트를 씌워서 계산한 값을 반환해주는 일을 합니다.
즉, 루트 x를 구해주는 함수입니다. 를 구해주는 함수입니다. (제곱근을 구해주는 함수)
- sqrt 함수 사용법
1) 루트 9를 구한다고 했을때
-> sqrt(9)
2) 루트 85.4를 구한다고 했을때
-> sqrt(85.4)
template관련 이전글들
4. sqrt 함수 예시
1) 소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | //C언어만 사용하시는 분들은 해당 헤더만 포함하세요. //#include<stdio.h> //#include<math.h> //C++용 헤더 #include<iostream> #include<cmath> using namespace std; int main(void) { double a = 9; double b = 85.4; printf("> C언어\n"); printf("sqrt(9) = %f\n", sqrt(a)); printf("sqrt(85.4) = %f\n",sqrt(b)); //아래는 C++사용자들을 위한 코드 입니다. cout << "> C++" << endl; cout << "sqrt(9) = " << sqrt(a) << endl; cout << "sqrt(85.4) = " << sqrt(b) << endl; system("pause"); return 0; } | cs |
2) 결과
- 주저리
C언어랑 C++을 분리한다고는 했는데, 사실 뭐 C++에서는 C에 있는걸 다 포함 합니다.
C++의 표준 입출력인 cin, cout을 사용하는 것을 보여드리고 싶기도 했고, 헤더도 다르다는 것을 알려드리기 위해서 위의 예제에서 분리를 해 보았습니다.
C++에서도 서식을 지정해서 출력하고 싶은 경우에 printf를 사용해도 무방합니다.
- 글 읽어주셔서 감사합니다. 질문같은게 있다면 댓글 남겨주세요~
'<개인공부> > [C언어, C++]' 카테고리의 다른 글
[C언어/C++] 로그함수(log, log10) 대해서. (9) | 2019.03.22 |
---|---|
[C언어/C++] 절대값 함수 abs, fabs에 대해서. (3) | 2019.03.18 |
[C언어/C++] atoi, atof, atol 함수 (char* to int) (13) | 2019.03.14 |
[C언어/C++] rand, srand, time 랜덤함수에 대해서 (난수생성) (37) | 2019.01.11 |
[C언어] 동적할당 정리2 (malloc, free 예제) (3) | 2018.10.31 |
[C언어/C++] assert 함수에 대해서 : 디버깅을위한, 더 안전한 코드를 위한 오류 검출 방법 (2) | 2018.10.24 |
[C언어/C++] define 매크로와 inline 함수에 대해서 (3) | 2017.11.03 |
[C언어/C++] clock 함수를 통한 알고리즘 시간 측정 (0) | 2017.10.19 |