문제 개요
정수(int), long, 문자(char), float, double 등 다양한 데이터 타입의 값이 입력으로 주어졌다고 가정해 보겠습니다. 이때 입력으로 받은 각 값의 정밀도를 그대로 유지한 채 화면에 출력하는 프로그램을 작성해야 합니다.
예를 들어, 정수값은 15, long값은 59523256297252, 문자값은 'y', float값은 367.124, double값은 6464292.312621로 주어진다면, 출력 결과는 다음과 같습니다.
15 59523256297252 y 367.124 6464292.31262
해결 방법
이 문제는 비교적 간단하게 해결할 수 있습니다. 핵심 접근 방법은 다음과 같습니다.
- 입력으로 주어진 각 값을 한 줄씩 순서대로 출력합니다.
여기서 주의해야 할 부분은 double 타입 값의 정밀도입니다. C++의 cout은 기본적으로 유효숫자 6자리까지만 출력하기 때문에, 소수점 이하의 정밀도를 유지하려면 printf의 서식 지정자(예: %.5f)를 활용하는 것이 좋습니다.
예제 코드
아래 구현 예제를 통해 더 자세히 이해해 보겠습니다.
#include <iostream>
#include <cstdio>
using namespace std;
void solve(int a, long b, char c, float d, double e) {
cout << a << endl << b << endl << c << endl << d << endl;
printf("%.5f", e);
}
int main() {
solve(15, 59523256297252, 'y', 367.124, 6464292.312621);
return 0;
}입력
15, 59523256297252, 'y', 367.124, 6464292.312621
출력
15 59523256297252 y 367.124 6464292.31262