23.01.24 13:38 작성
·
306
0
int main()
{
int num = 0,red=0, sum = 0;
int status;
printf("Enter an integer (q to quit) :");
status= scanf("%d %d", &num, &red);
while (status >= 1)
{
sum = sum + num + red;
printf("Enter next integer (q to quit) : ");
status = scanf("%d %d", &num, &red);
}
printf("Sum = %d", sum);
return 0;
}
여기서 정수를 입력받은 변수의 갯수로 scanf의 반환값이 status라는 변수에 저장되는 것으로 이해했는데요
변수 num red에 각각 순서대로 1 2 / 3 4 / q 5를 넣으며 디버거로 확인해봤는데요. 세번째 scanf에 5라는 정수를 입력해서 status 값이 1이 나올거라 생각했는데 왜 status값이 0으로 나올까요? num에 숫자가 아닌 문자를 넣어서 red에도 영향을 주는건가요??
/5 q 순서로 바꿔서 넣어봤을때는 status값이 1이 나와 4번째 scanf를 입력하려 했지만 그냥 그대로 끝이나고 sum도 4가 중복돼서 10과 19로 값이 다르더라고요.
문자를 입력하면 뒤에 변수에도 영향을 주는거 같은데 확실하지 않아서 질문드립니다.