본문 바로가기
C and C++/C and C++ Examples

[C++ Examples] Fixed, showpoint, setprecision(): 평균 근로 시간 구하기

by Henry Cho 2022. 3. 13.
728x90

[C++ Examples] Fixed, showpoint, setprecision(): 평균 근로 시간 구하기


포스트 난이도: HOO_Intern

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


 

# C++ Example Codes

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
   int employee = 0;
   double total = 0.0;
   double average = 0.0;
   
   cout << "Please enter the employees: ";
   cin >> employee;
   
   for (int count = 1 ; count <= employee; count++)
   {
      double hours;
      cout << "\n Please enter the employee's hours: ";
      cin >> hours;
      total += hours;
      cout << "Employee " << count << " worked " << hours << " hours" << endl;
   }
   
   
   cout << endl;
   cout << "The sum of hours worked by " << employee << " employees is " << total << endl;
   average = total / employee;
   cout << showpoint << setprecision(4);
   cout << "The average number of hours worked is " << average << endl;
   
   return 0;
}
Please enter the employees: 5

 Please enter the employee's hours: 12
Employee 1 worked 12 hours

 Please enter the employee's hours: 17
Employee 2 worked 17 hours

 Please enter the employee's hours: 18
Employee 3 worked 18 hours

 Please enter the employee's hours: 19
Employee 4 worked 19 hours

 Please enter the employee's hours: 22
Employee 5 worked 22 hours

The sum of hours worked by 5 employees is 88
The average number of hours worked is 17.60

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
   int employee = 0;
   double total = 0.0;
   double average = 0.0;
   
   cout << "Please enter the employees: ";
   cin >> employee;
   
   for (int count = 1 ; count <= employee; count++)
   {
      double hours;
      cout << "\n Please enter the employee's hours: ";
      cin >> hours;
      total += hours;
      cout << "Employee " << count << " worked " << hours << " hours" << endl;
   }
   
   
   cout << endl;
   cout << "The sum of hours worked by " << employee << " employees is " << total << endl;
   average = total / employee;
   cout << fixed << showpoint << setprecision(2);
   cout << "The average number of hours worked is " << average << endl;
   
   return 0;
}
Please enter the employees: 5

 Please enter the employee's hours: 12
Employee 1 worked 12 hours

 Please enter the employee's hours: 17
Employee 2 worked 17 hours

 Please enter the employee's hours: 18
Employee 3 worked 18 hours

 Please enter the employee's hours: 19
Employee 4 worked 19 hours

 Please enter the employee's hours: 22
Employee 5 worked 22 hours

The sum of hours worked by 5 employees is 88
The average number of hours worked is 17.60

# Exaplain Codes

이번 예제 코드는 Bro가 질문했던 문제이다.

Fixed, show point와 setprecision을 활용한 근로자 일한 시간의 평균을 구하는 Code이다.

따라서 iomanip를 라이브러리로 가지고 있는 코드이다.

여기서 중요한 점은 첫 번째 코드는 fixed를 사용하지 않은 경우이고 두 번째 코드는 fixed를 사용한 코드이다.

결과적으로 두개의 코드 모두 결과는 똑같이 산출된다.

첫 번째 코드의 의미는 4자리 숫자가 고정적을 산출된다는 의미를 가지고 있다.

반면에 두 번째 코드에서 Fixed와 showpoint가 사용되면서 2자리 고정적인 소수점을 포함하고 있다가 조건의 기준이 된다.

따라서 두 코드의 기준 조건은 조금 다르지만 결과적으로 산출되는 결과값은 동일하다는 것이다.

하지만 일하는 근로 시간이 100시간이나 1200시간과 같이 2자리 수를 넘어가게 되면 두 코드가 산출되는 결괏값은 달라진다.

첫 번째 코드의 경우에는 4자리 숫자가 산출되도록 하는 것이 기준이기 때문에 숫자가 커지게 되면 소수점이 산출되지 않는다.

반면에 두번째 코드의 조건 기준은 2자리 소수점이 고정적으로 산출되야하기 때문에 아무리 숫자가 커지더라도 고정적으로 소수점 2자리까지 산출되는 결과를 얻을 수 있다.

이 두가지의 차이점을 이해한다면 fixed, showpoint, setprecision을 사용하는데 문제가 없다.


728x90

댓글