ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

     

    JUNGOL | 문제은행 1 페이지

     

    www.jungol.co.kr

    댓글

Designed by Tistory.