책 내용 질문하기
1권 302쪽 질문드립니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
302
조회수
53
작성일
2018-09-19
작성자
탈퇴*원
첨부파일
C언어 코드 중 9번 관련 질문 드립니다.
printf ("%d %d" , j, m+1);
입력받은 값 j를 임의의 값 60으로 설정하고 문제를 풀었는데요,
그럼 L=0, h=9 로 초기값이 설정되고
첫번째 if문이 성립하여 m값은 (0+9)/2 = 4
두번째 if문은 입력받은 j값(60)과 data [4] 값이 일치하면 실행문이 실행되는데요,
printf 실행문에서 왜 m+1을 해주면 m값이 5가 되서 그 다음 배열요소 값인 61이 출력되는게 아닌가요?ㅠㅠ
답변
2018-09-20 10:45:15
안녕하세요. 길벗 수험서 운영팀입니다.
출력값에 대한 오해 때문에 발생한 문제입니다.
printf ("%d %d" , j, m+1); 에서 출력하는 것은, 입력받은 값과 그 값이 배열에서 몇 번째에 존재하는 지를 출력하는 것입니다.
즉, 말씀하신 값 60은 배열에서 m인 4의 위치에 있으나, C언에서 배열은 0부터 시작하기 때문에 1을 더하여 5번째 위치에 있다고 출력하는 것입니다.
행복한 하루되세요.^^
-
*2018-09-20 10:45:15
안녕하세요. 길벗 수험서 운영팀입니다.
출력값에 대한 오해 때문에 발생한 문제입니다.
printf ("%d %d" , j, m+1); 에서 출력하는 것은, 입력받은 값과 그 값이 배열에서 몇 번째에 존재하는 지를 출력하는 것입니다.
즉, 말씀하신 값 60은 배열에서 m인 4의 위치에 있으나, C언에서 배열은 0부터 시작하기 때문에 1을 더하여 5번째 위치에 있다고 출력하는 것입니다.
행복한 하루되세요.^^