반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
01-20 19:09
관리 메뉴

ImJay

[C언어] 백준 10951번 : A+B - 4 본문

백준 - C, C++/04. while문

[C언어] 백준 10951번 : A+B - 4

ImJay 2020. 9. 24. 00:02
반응형

백준 10951번 : A+B - 4

- 사용언어 : C언어

www.acmicpc.net/problem/10951

1. 문제

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

2. 코드

#include <stdio.h>

int main(void) {
    int a,b;
    while(scanf("%d %d", &a, &b)!=EOF) {
        printf("%d\n", a+b);
    }
}

3. 풀이

문제를 읽고 처음엔 조건이 사라져서 이게 왜 10952번보다 뒤에 있을까 개꿀이다~하고 풀었는데 출력초과..

 

여러분도 저처럼 뉴비시라면 이 문제를 검색한 것에 부끄러워하지 마세요.

 

어떻게하면 풀 수 있을까 고민하다가 결국 EOF를 모르면 못 풀었다는..

 

scanf가 while문안에 들어 갈 수 있다는 사실도 처음 알았네요.

 

C언어는 운영체제와 상관없이, 파일의 끝에 도달했을 때 언제나 특별한 값을 반환하도록 합니다.

 

EOF는 End Of File의 약자로 파일의 끝을 표현하기 위해 -1로 정의된 상수입니다.

 

즉, scanf("%d %d", &a, &b)!=EOF의 의미는 파일의 끝에 도달할 때까지 while문을 실행한다는 의미입니다.

 

출력초과가 나왔던 이유는 우리가 while문의 끝을 정해놓지 않았기 때문에 scanf가 무한루프 돌아서 메모리 할당 범위를 넘어섰기 때문이에요.

 

벌써 어렵다 ...ㅠ

반응형

'백준 - C, C++ > 04. while문' 카테고리의 다른 글

[C언어] 백준 1110번 : 더하기 사이클  (0) 2020.09.24
[C언어] 백준 10952번 : A+B - 5  (0) 2020.09.24
Comments