본문 바로가기
코딩/백준

[C언어] 백준 BOJ 10951 A+B-4 - 김두루미

by 김두루미 2022. 7. 19.
반응형

https://www.acmicpc.net/problem/10951

 

10951번: A+B - 4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

문제 설명

백준의 문제 - 단계별로 풀어보기의 [반복문] 의 10951 A+B-4 문제입니다.

 

이번 문제는 반복이 몇 번한다 또는 반복이 무언가가 들어올 때 멈춘다라는 조건이 지문에 보이지 않았습니다.

반복문 단계별 문제의 밑에 힌트가 있어 EOF에 대해 찾아보았습니다.

 

EOF(End of File)은 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타낸다. -위키백과

EOF를 C언어에서 표현을 할 때는 scanf의 return 값을 한다고 합니다.

res = scanf("%d %d", &a, &b);

scanf 함수가 반환해주는 것은 "" 안에 있는 포맷 형식의 개수를 반환해줍니다. EOF(End Of File)이 입력되는 경우는 -1을 반환해줍니다. 이를 통해 반복문의 종료 조건을 설정하여 문제를 해결하였습니다. EOF를 입력할 때는 [Ctrl + Z] 를 누르면 됩니다! 명령 프롬프트에서는 ^Z로 보입니다!

 

코드 (C언어)
#include<stdio.h>

int main(void)
{
	int a, b, res;
	
	while(1) //for(;;)로 무한 반복 대채 가능! 
	{
		res = scanf("%d %d", &a, &b);
		
		//EOF가 들어오면 res에는 -1 ! 
		if(res == -1)
		{
			//break가 실행되면 자신이 속한 반복문을 멈춘다! 
			break;
		}
		
		printf("%d\n", a+b);
	}
	
	return 0;
}
반응형