새소식

인기 검색어

Algorithm/C++

[10951] A+B - 4 (입력 종료 조건이 없을 때)

  • -
시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초256 MB213818229685540.627%

문제

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

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

각 테스트 케이스마다 A+B를 출력한다.

예제 입력 1 

1 1
2 3
3 4
9 8
5 2

예제 출력 1 

2
5
7
17
7



문제는 정말 간단하나 "출력 초과" 라는 에러메세지가 떴다. 이게 무슨 메세지일까 검색을 해봤다.


"프로그램이 무한 루프에 빠졌을 때"

아니.. 그러라고 만든 문제 아닌가? 라고 생각했는데, 내가 EOF에 대한 개념이 없었던 거였다.. 나의 무지함..
이 경우에 EOF를 입력 받을때 프로그램을 종료 시켜야하기 때문에 해당 조건을 넣어줘야한다.

잘못된 코드

 //10951
#include <iostream>

using namespace std;

int main() {
	int a, b;

	while (true) {
        cin >> a >> b

		cout << a + b << endl;
	}

	return 0;
}

이 경우 프로그램이 종료되지 못하고 계속 무한루프를 돌기 때문에 '출력 초과' 라는 에러가 뜬다.


그래서 EOF를 입력 받을때 프로그램을 종료 시키기 위해 while 조건문 안에서 입력을 제대로 받았는지 처리해줘야한다.


해결방법 - C

while (scanf("%d %d",&a,&b) != EOF) { } 

해결방법 - C++
 while (cin >> a >> b) { }

성공한 코드

//10951
#include <iostream>

using namespace std;

int main() {
	int a, b;

	while (cin >> a >> b) {

		cout << a + b << endl;
	}

	return 0;
}

'Algorithm > C++' 카테고리의 다른 글

[1699] 제곱수의 합  (0) 2019.04.03
[2741] N 찍기 (시간 초과 날 경우)  (0) 2019.03.19
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.