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;
}

결론

평균과 평균을 넘는 학생의 수의 %를 구하는것으로 간단한 문제라고 생각한다.

업데이트: