본문 바로가기
Programming/PS

[BOJ] C언어 10951 A+B-4

by yoiii 2020. 12. 9.

BOJ C언어 10951 A+B-4 문제풀이

난이도 : BRONZE3


문제

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


입력

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

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


출력

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


풀이 1 (틀린 풀이)

#include <stdio.h>
int main(){
    int val1,val2;
    while(1){
        scanf("%d %d",&val1,&val2);
        printf("%d\n",val1+val2);
    }
    return 0;
}

 

다음과 같이 무한루프를 이용하여 풀었더니, 출력 초과가 나왔습니다.

문제의 조건을 잘 살펴보면, 입력받을 테스트케이스의 개수와 종료조건이 명시되어있지 않습니다.

따라서 정상적인 프로그램 종료를 위해서, 소스로 부터 읽어들일 수 없음을 나타내야 하는데, 이는 EOF(End Of File) '파일의 끝' 을 이용하면 됩니다.

 

■ EOF?


EOF란, 파일의 끝을 표현하기 위해 매크로로 정의된 상수를 의미하는데, C에서는 항상 -1 을 반환한다.

주로 입력이 없을 때 파일을 종료하기 위해서 사용한다.


풀이 2 (맞은 풀이)

#include <stdio.h>
int main() {
	int A, B;
	while (scanf("%d %d", &A, &B) != EOF)
		printf("%d\n", A + B);
	return 0;
}

 


www.acmicpc.net/problem/10951

 

10951번: A+B - 4

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

www.acmicpc.net

 

 

 

'Programming > PS' 카테고리의 다른 글

[BOJ] C언어 10953 A+B-6  (0) 2020.12.19
[BOJ] C언어 10952 A+B-5  (0) 2020.12.19
[BOJ] C언어 10950 A+B-3  (0) 2020.12.08
[BOJ] C언어 2558 A+B-2  (0) 2020.12.08
[BOJ] C언어 1000 A+B  (2) 2020.12.08

댓글