문제
두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오.
입력
두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000)
출력
첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A*B, 넷째 줄에 A/B, 다섯째 줄에 A%B를 출력한다.
예제 입력
7 3
예제 출력
10
4
21
2
1
[C] 코드
#include <stdio.h> int main() { int A, B; scanf("%d%d", &A, &B); printf("%d\n", A+B); printf("%d\n", A-B); printf("%d\n", A*B); printf("%d\n", A/B); printf("%d\n", A%B); return 0; }
앗 개행 안 했다가 틀림......아까워요ㅠㅠ
문제에서 괜히 첫째줄에~, 둘째줄에~, ... 이런 게 아닐텐데
문제 꼼꼼히 읽어야겠습니다.
[C++] 제출 코드
#include <iostream> using namespace std; int main() { int A, B; cin >> A >> B; cout << A+B << endl; cout << A-B << endl; cout << A*B << endl; cout << A/B << endl; cout << A%B << endl; return 0; }
오히려 C++코드는 endl 잘 써줘서 맞췄네요ㅋㅋ
#7번 포스팅에서 endl과 \n의 차이를 공부하긴 했는데
실제 코드 작성하면서는 뭘 써야 되는지 감이 잘 안 오더라구요.
그래서 좀더 찾아봤습니다.
endl
: 새로운 행이 시작됨을 나타내는 표기로, iostream 헤더 파일에 정의 되어 있고 std namespace에 속합니다. endl을 출력 스트림에 삽입하면 화면 커서가 다음 행의 시작 위치로 이동합니다.조정자(manipulator)
: cout에게 특수한 의미를 가지는 표기들\n
: 출력에 새로운 행을 나타내는 표기그럼 endl
과 \n
은 각각 어떤 상황에서 사용할까요?
cout << "Hi, how are you? \n I'm fine, thank you." << endl;
대체로 따옴표로 묶인 문자열을 출력할 때 개행문자 \n
을 사용하고,
그 밖의 경우는 endl
을 사용하는데 7번 포스팅에서 살펴본 것처럼 endl
은 출력 버퍼를 비우고(flush) 다음 내용을 진행해 오버헤드가 크고, \n
은 버퍼에 계속 쌓다가 일정 크기가 넘어갈 때 flush하므로 endl에 비해 오버헤드가 덜합니다.
따라서 실시간으로 flush가 필요한 것이 아니라면 endl 대신 \n
을 써서 개행하는 게 좋겠습니다.