보관함
JUNGOL 기초다지기 02 입력
niamdank
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
JUNGOL | 문제은행 1 페이지
www.jungol.co.kr