반응형
https://www.acmicpc.net/problem/10951
- 문제
해설
c - scanf 함수의 경우 서식지정자 개수 즉 읽은 데이터의 개수에 따른 반환 값이 존재한다.
만약 scanf("%d %d", &a, &b);의 경우 서식지정자 %d가 2개 즉 int 데이터를 2개 받았으므로 2를 반환한다.
만약 데이터를 읽다가 파일의 끝에 도달할 경우 scanf 함수는 -1을 반환한다.
따라서 while문 조건식을 파일의 끝일 때까지 즉 scanf("%d %d", &a, &b) != -1 로 설정한다.
c++ - cin은 데이터를 읽은 후 스트림 객체를 반환하지만 조건문 안에 있는 경우 bool 타입으로 바뀌어 true, false를 반환한다.
cin이 데이터를 읽는 과정에서 실패하면 false, 성공하면 true를 반환하기 때문에
while문 조건식을 cin >> a >> b로 설정한다.
코드
c
#include <stdio.h>
int main() {
int a, b;
while (scanf("%d %d", &a, &b) != -1) {
printf("%d \n", a + b);
}
return 0;
}
c++
#include <iostream>
using namespace std;
int main() {
int a, b;
while (cin >> a >> b) {
cout << a + b << '\n';
}
return 0;
}
반응형
'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
[BOJ/백준] - 10818번 최소, 최대 - [c/c++] 풀이 (0) | 2022.10.11 |
---|---|
[BOJ/백준] 1110번 더하기 사이클 - [c/c++] 풀이 (0) | 2022.10.11 |
[BOJ/백준] 10952번 A + B - 5 - [c/c++] 풀이 (0) | 2022.10.10 |
[BOJ/백준] - 10871번 X보다 작은 수 - [c/c++] 풀이 (0) | 2022.10.10 |
[BOJ/백준] 2439번 별 찍기 - 2 - [c/c++] 풀이 (0) | 2022.10.10 |
댓글