책 내용 질문하기
얇은책 66쪽 질문입니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
66
조회수
185
작성일
2019-09-08
작성자
탈퇴*원
첨부파일

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 값이라고 할 수는 없을텐데, 식이 왜 저렇게 쓰였는지도 궁금합니다.

 

혹시 제가 모르는 가정이나 법칙이 있는지요.

 

설명 답글 남겨주시면 감사하겠습니다.

 

 

 

 

답변
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)가 되어 의미가 없게 되죠)

 

행복한 하루되세요 :)

  • 관리자
    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)가 되어 의미가 없게 되죠)

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.