인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

휴식중인너구리님의 프로필 이미지
휴식중인너구리

작성한 질문수

홍정모의 따라하며 배우는 C언어

6.1 while 반복 루프에서 scanf()의 반환값 사용하기

잘 모르겠어요

작성

·

302

0

왜 Enter next integer (q to quit) : 두 번 출력 되고 Sum 값이 이상하게 출력 되는지 잘 모르겠습니다..

#include <stdio.h>


int main()
{	
	int sum = 0;
	char input = ' ';

	printf("Enter an integer (q to quit) : ");
	scanf("%c", &input);

	if (input != 'q')
	{
		sum += (int)(input - 48);
		while (1)
		{
			printf("Enter next integer (q to quit) : ");
			scanf("%c", &input);
			if (input == 'q') break;
			sum += (int)(input - 48);
		}
	}
	printf("Sum = %d", sum);
	
	
	return 0;
}

답변 1

0

안녕하세요,

우선 아래의 경우 character input이기에 하나의 입력만 받아들이게 됩니다.

가령 12라고 한다면 1만 받아들이게 되지요.

scanf("%c", &input);

 

아래 예시코드를 작성해두었으니 실행하여 확인해보세요.

#include <stdio.h>


int main()
{
        int sum = 0;
        char input;

        scanf("%c", &input);
        printf("input:  %d\n", (int)(input - 48));

        return 0;
}

 

 

휴식중인너구리님의 프로필 이미지
휴식중인너구리

작성한 질문수

질문하기