반응형
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;
}
반응형
'코딩 > 백준' 카테고리의 다른 글
[C언어] 백준 BOJ 2440 별 찍기 3 (0) | 2022.07.21 |
---|---|
[C언어] 백준 BOJ 1110 더하기 사이클 - 김두루미 (0) | 2022.07.20 |
[C언어] 백준 BOJ 10952 A+B-5 - 김두루미 (0) | 2022.07.18 |
[C언어] 백준 BOJ 10871 X보다 작은 수 - 김두루미 (0) | 2022.07.17 |
[C언어] 백준 BOJ 2439 별찍기 2 - 김두루미 (0) | 2022.07.16 |