728x90
[C++ Examples] Fixed, showpoint, setprecision(): 평균 근로 시간 구하기
포스트 난이도: HOO_Intern
# 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
'C and C++ > C and C++ Examples' 카테고리의 다른 글
[C Examples] 도시의 인구 수 예측하기, 예제코드: scanf(), putchar() (0) | 2023.01.30 |
---|---|
[C++ Examples] For loop와 1차 Array를 사용해서 점수 나타내기 (0) | 2022.04.17 |
[C++ Examples] setfill(), setw(): cin.get()으로 입력한 char를 setfill() 안에 char 타입 symbol 출력하기 (0) | 2022.03.12 |
[Example Codes] queue.push(), queue,back(), queue.front(), queue.pop() (0) | 2020.05.05 |
[Example Codes] queue.push(), queue.back() (0) | 2020.05.05 |
댓글