nmg = k - k / 5 * 5;
이 부분에서 'k / 5'가 어떻게 'k의 몫'으로 해석될 수 있는지 궁금합니다.
토막강의에서 강사분이 "(k=1일때) k를 5로 나눈 몫이 0이죠. 1 - 0*5 = 1이니까 nmg는 0이 아니네요"라고 설명해주셨는데,
k=1일때 저 식을 계산하면 1-(1/5*5)=1-(0.2*5)=1-1=0 아닌가요?
k와 nmg가 int라고 해서 'k / 5'도 int 값이라고 할 수는 없을텐데, 식이 왜 저렇게 쓰였는지도 궁금합니다.
혹시 제가 모르는 가정이나 법칙이 있는지요.
설명 답글 남겨주시면 감사하겠습니다.
안녕하세요 길벗수험서 운영팀입니다.
69쪽의 C코드를 문의주신 것으로 보입니다.
먼저, 정수변수를 가지고 연산을 한 결과의 값은 '정수형'입니다.
아래 코드와 결과를 확인해보세요.
변수 a는 실수인 double형 변수이고, k는 정수 int형 변수입니다.
k를 5로 나눠 실수 변수 a에 넣게 되면 1.2가 나와 결과로 1.200000이 나와야 맞을 것 같지만 실제 결과값은 1입니다.
위 결과로 정수형 변수를 활용하는 연산은 결과로 정수를 반환한다는 것을 알 수 있죠.
회원님이 질문하신 예시로 들어본다면
1-(1/5*5)=1-(0*5)=1-0=1
이렇게 되는 것이죠.
(위에서 괄호 안에 든 숫자 1이 정수형 변수에 들어있기 때문에 이런 결과가 나오는 것입니다. 만약 단순히 상수 1이라면 회원님의 생각대로 (0.2*5)가 되어 의미가 없게 되죠)
행복한 하루되세요 :)
-
관리자2019-09-09 13:13:12
안녕하세요 길벗수험서 운영팀입니다.
69쪽의 C코드를 문의주신 것으로 보입니다.
먼저, 정수변수를 가지고 연산을 한 결과의 값은 '정수형'입니다.
아래 코드와 결과를 확인해보세요.
변수 a는 실수인 double형 변수이고, k는 정수 int형 변수입니다.
k를 5로 나눠 실수 변수 a에 넣게 되면 1.2가 나와 결과로 1.200000이 나와야 맞을 것 같지만 실제 결과값은 1입니다.
위 결과로 정수형 변수를 활용하는 연산은 결과로 정수를 반환한다는 것을 알 수 있죠.
회원님이 질문하신 예시로 들어본다면
1-(1/5*5)=1-(0*5)=1-0=1
이렇게 되는 것이죠.
(위에서 괄호 안에 든 숫자 1이 정수형 변수에 들어있기 때문에 이런 결과가 나오는 것입니다. 만약 단순히 상수 1이라면 회원님의 생각대로 (0.2*5)가 되어 의미가 없게 되죠)
행복한 하루되세요 :)