인프런 커뮤니티 질문&답변

ksangyun04님의 프로필 이미지
ksangyun04

작성한 질문수

문제로 배우는 C언어

최소값 구하기

24. 최솟값 구하기

작성

·

236

·

수정됨

0

int main(){

int i, min= 21470000, a;

for(i=1; i<=7; i++){

scanf("%d", &a);

if (a < min)

min = a;

}

printf("%d", min);

return 0;

}

사용자가 입력 값을 5 3 7 11 2 15 17 와 같이 띄어쓰기가 포함된 입력 값을 입력하는데, 짜여진 코드에서는 띄어쓰기를 고려한 부분이 없는 것 같습니다.

이 부분에서 궁금한 점이 있는데, scanf("%d ", &a) 와 같이 d 다음에 띄어쓰기를 포함하지 않고 스캔을 받더라도 OS가 자동으로 띄어쓰기를 고려하여 입력 값을 처리하는 이유가 무엇인가요??

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

scanf 함수 자체가 숫자를 입력받을 때 뛰어쓰기 또는 줄바꿈기호를 구분자로 해서 입력값을 구분해서 읽도록 만들어진 함수입니다. 그래서 scanf("%d", &a)와 같이 해야지 scanf("%d ", &a)와 같이 %d뒤를 띄어쓰기 하면 입력값을 읽어내지 못합니다.

ksangyun04님의 프로필 이미지
ksangyun04

작성한 질문수

질문하기