-
JUNGOL 기초다지기 02 입력보관함 2019. 11. 12. 23:28
프로그래밍에서 가장 기초적인 내용을 다루는 기초 다지기입니다.
이번 포스팅은 기초 다지기 중 두 번째인 입력 문제를 풀어보도록 하겠습니다.
기초 내용인 만큼 다른 설명없이 문제와 코드만 간단하게 작성하도록 하겠습니다.
509 : 입력 - 자가진단1
#include <iostream> using namespace std; int main(void) { int var = -100; cout << var << endl; }
510 : 입력 - 자가진단2
#include <iostream> using namespace std; int main(void) { int var1 = -1, var2 = 100; cout << var1 << endl; cout << var2 << endl; }
511 : 입력 - 자가진단3
#include <iostream> using namespace std; int main(void) { int var1, var2; var1 = 55; var2 = 10; cout << var1 << " - " << var2 << " = " << var1 - var2 << endl; var1 = 2008; var2 = 1999; cout << var1 << " - " << var2 << " = " << var1 - var2 << endl; }
512 : 입력 - 자가진단4
이번 문제에서 주목해야 할 부분은 소수점 자리수가 6개가 표시되고 있다는 점입니다.
그러므로 소수점 이하 6자리가 고정적으로 표시되도록 설정해줘야 합니다.
#include <iostream> using namespace std; int main(void) { int weight = 49; float gValue = 0.2683f; cout.setf(ios::fixed); cout.precision(6); // 소수점 이하 6자리 표시 cout << weight << " * " << gValue << " = " << weight * gValue << endl; }
513 : 입력 - 자가진단5
문제의 출력 예를 살펴보면 두 줄의 끝이 맞춰져 있는 것을 알 수 있다.
즉, 출력에 포맷을 지정해야 한다. C++에서는 <iomanip>을 include하여 포맷의 지정이 가능하다.
#include <iostream> #include <iomanip> using namespace std; int main(void) { const float yd2cm = 91.44f; const float in2cm = 2.54f; cout.setf(ios::fixed); cout.precision(1); // 소수점 이하 1자리 표시 cout.fill(' '); float myYard = 2.1f; cout << setw(4) << myYard << "yd = " << setw(5) << myYard * yd2cm << "cm" << endl; float myInch = 10.5f; cout << setw(4) << myInch << "in = " << setw(5) << myInch * in2cm << "cm" << endl; }
514 : 입력 - 자가진단6
#include <iostream> using namespace std; int main(void) { int height; cout << "height = "; cin >> height; cout << "Your height is " << height << "cm." << endl; }
515 : 입력 - 자가진단7
#include <iostream> using namespace std; int main(void) { int var1, var2; cin >> var1 >> var2; cout << var1 << " * " << var2 << " = " << var1 * var2 << endl; cout << var1 << " / " << var2 << " = " << var1 / var2 << endl; }
516 : 입력 - 자가진단8
#include <iostream> using namespace std; int main(void) { double var1, var2; char ch; cin >> var1 >> var2 >> ch; cout.setf(ios::fixed); cout.precision(2); // 소수점 자리수 설정 cout << var1 << endl << var2 << endl << ch << endl; }
517 : 입력 - 자가진단9
#include <iostream> using namespace std; int main(void) { double var1, var2, var3; cin >> var1 >> var2 >> var3; cout.setf(ios::fixed); cout.precision(3); // 소수점 자리수 설정 cout << var1 << endl << var2 << endl << var3 << endl; }
106 : 입력 - 형성평가1
#include <iostream> using namespace std; int main(void) { int var1 = 10, var2 = 20, var3 = 30; cout << var1 << " + " << var2 << " = " << var3 << endl; }
107 : 입력 - 형성평가2
이 문제도 마찬가지로 여러가지 출력 옵션을 설정해 줘야합니다.
#include <iostream> #include <iomanip> using namespace std; int main(void) { float var1 = 80.5f, var2 = 22.34f; cout.right; // 오른쪽 정렬 cout.setf(ios::fixed); cout.precision(2); // 소수점 자리수 설정 cout << setw(10) << var1 << setw(10) << var2 << setw(10) << var1 + var2 << endl; }
108 : 입력 - 형성평가3
이 문제는 소수점 이하 2자리로 출력한 이후 다시 소수점 자리수를 0으로 만들어 결과를 출력하는 방법과 정수형으로 형 변환하여 소수점이 출력되지 않도록 하는 방식이 있을 수 있습니다.
저는 정수로 캐스팅하여 소수점을 제거했습니다.
#include <iostream> using namespace std; int main(void) { int var1 = 50; float var2 = 100.12f; cout.setf(ios::fixed); cout.precision(2); // 소수점 자리수 설정 cout << var2 << " * " << var1 << " = " << static_cast<int>(var2 * var1) << endl; }
109 : 입력 - 형성평가4
#include <iostream> using namespace std; int main(void) { int var1, var2, var3; cin >> var1 >> var2 >> var3; int sum = var1 + var2 + var3; int avg = sum / 3; cout << "sum = " << sum << endl; cout << "avg = " << avg << endl; }
110 : 입력 - 형성평가5
#include <iostream> using namespace std; int main(void) { const double yd2cm = 91.44f; double myYard; cout << "yard? "; cin >> myYard; cout.setf(ios::fixed); cout.precision(1); // 소수점 자리수 지정 cout << myYard << "yard = " << myYard * yd2cm << "cm" << endl; }
http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&sca=1020