4344 - 평균은 넘겠지
4344 문제 링크
접근법
cout « fixed 는 cout할때 소수점 자리수를 고정시키고 cou.percision은 소수점 3째자리까지 출력하는것을 의미한다. 그 후 몇번 반복할지 횟수를 입력받고 getAverage로 전체 평균을 구하고 overAverage를 통해 평균을 넘는 학생의 수를 %로 나타내면 된다.
#include <iostream>
#include <vector>
using namespace std;
vector<int> student;
int overAverage(double average);
int getAverage(int numberOfstudents)
{
int sum=0;
int a=0;
for(int i = 0; i< numberOfstudents; i++)
{
cin >> a;
sum += a;
student.push_back(a);
}
overAverage(sum/numberOfstudents);
return 0;
}
int overAverage(double average)
{
int numOfOverAverage=0;
int size = student.size();
for (int i=0; i<size; i++)
{
if(student[i] > average)
{
numOfOverAverage++;
}
}
cout << (double)numOfOverAverage/size*100 << "%" << endl;
student.clear();
return 0;
}
int main()
{
cout << fixed;
cout.precision(3);
int taskCase;
int numofstudent;
double average;
cin >> taskCase;
cin;
for (int i=0; i< taskCase; i++)
{
cin >> numofstudent;
average = getAverage(numofstudent);
}
return 0;
}
결론
평균과 평균을 넘는 학생의 수의 %를 구하는것으로 간단한 문제라고 생각한다.