책 내용 질문하기
알고리즘이랑 C언어 코드 중 이해 안되는 부분이 있습니다.
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
154,156
조회수
200
작성일
2019-08-08
작성자
탈퇴*원
첨부파일

안녕하세요 공부를 하다가 궁금한 점이 있어서 질문합니다

 

 

알고리즘에서  INT(i/2) = i/2와 C언어의 if( (int) (i/2) == i/2)가 왜 홀짝 판별법인지 모르겠습니다.

알고리즘의 INT(i/2)와 i/2는 i값이 같으니깐 같은 값이 나올거 같고 씨언어도 동일하게 생각이 되는데 이게 어떻게 홀짝을 구문하는 건지 혹시 자세히 개념 설명해주실수 있나요?

 

 

감사합니다.

답변
2019-08-08 14:28:01

안녕하세요 길벗수험서 운영팀입니다.

 

i의 값이 짝수일 경우와 홀수일 경우를 예로 들어볼까요.

 

i가 2인 경우, i/2의 결과는 1입니다.

1을 int 함수를 통해 정수화 시켜도 1이 나오므로

 int(i/2)=i/2 는 1=1이 되어 참(true)이 됩니다.

 

i가 3인 경우, i/3의 결과는 1.5입니다.

1.5를 int 함수를 통해 정수화 시키게 되면 1이 나오므로

int(i/2)=i/2 는 1=1.5가 되어 거짓(false)가 됩니다.

 

int함수의 역할을 확실히 기억하시고 디버깅을 통해 int함수를 거친 값들이 어떻게 변화하는지 확인하세요.

 

행복한 하루되세요 :)

  • 관리자
    2019-08-08 14:28:01

    안녕하세요 길벗수험서 운영팀입니다.

     

    i의 값이 짝수일 경우와 홀수일 경우를 예로 들어볼까요.

     

    i가 2인 경우, i/2의 결과는 1입니다.

    1을 int 함수를 통해 정수화 시켜도 1이 나오므로

     int(i/2)=i/2 는 1=1이 되어 참(true)이 됩니다.

     

    i가 3인 경우, i/3의 결과는 1.5입니다.

    1.5를 int 함수를 통해 정수화 시키게 되면 1이 나오므로

    int(i/2)=i/2 는 1=1.5가 되어 거짓(false)가 됩니다.

     

    int함수의 역할을 확실히 기억하시고 디버깅을 통해 int함수를 거친 값들이 어떻게 변화하는지 확인하세요.

     

    행복한 하루되세요 :)

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