본문 바로가기
c++

[c++] c++루트 구하기 sqrt함수

by yoonjunho 2023. 2. 20.

c / c++에서 루트구하기 : sqrt함수 

헤더파일 :

c : #include <math.h>

c++ : #include <cmath>

ex)

int x=9;

int y=sqrt(x);

>>y는 3이 저장된다. 

 

 

 

함수 원형 :

c언어 : 

double sqrt(double x) (=> 즉, 인수로 int를 넣으면 double로 형변환, 반환값을 int y로 받으면 int로 형변환 된다. 맞나?)

 

c++ :

double sqrt(doube x)

float sqrt(float x)

long double sqrt(long double x)

ㄴ(함수 오버로딩으로 받는 인수, 반환형만 다르고 이름은 같게 해서 다른 함수를 정의함)

 

 

** sqrt : square root (제곱근)

 

예시 :

sqrt(10)을 한다면 -> 

int main(void) {
	double x = 10;
	double y = sqrt(x);
	printf("sizeof : %zu bite, value : %lf", sizeof(y),y);
	return 0;
}

>> sizeof : 8 bite, value : 3.162278 이래 나온다. 소수점으로

 

 

 **

sqrt에서 인수로 음수를 넣었을 때, 여러가지 오류들(C언어)

double sqrt(double x) 에서 ,

int x = -10;
double y = sqrt(x); //or double x = -10;
printf("sizeof : %zu bite, value : %d", sizeof(y),y);

>>sizeof : 8 bite, value : 0

 

double x = -10;
double y = sqrt(x);
printf("sizeof : %zu bite, value : %lf", sizeof(y),y); //<-요기가 %d->%lf로 다름

>>sizeof : 8 bite, value : -nan(ind)

(-nan(ind) : (숫자가 아님, nan:  Not a Number,  '실수 체계에서 나올 수 없는 값 ))

 

int x = -10;
	int y = sqrt(x);
	printf("sizeof : %zu bite, value : %d", sizeof(y),y);

>>sizeof : 4 bite, value : -2147483648

'c++' 카테고리의 다른 글

[c++] STL - 컨테이너 - vector  (0) 2023.02.20
[C++] 내림 함수(floor), 올림 함수(ceil)  (0) 2023.02.20
[c++] 동적 배열의 크기를 구할 수 있을까?  (0) 2023.02.18
[c++] * 배열 정리  (0) 2023.02.18
[c++] c++제곱 연산  (0) 2023.02.18