как сделать чтобы программа отображала имя ученика с наивысшей средней оценкой
//Входные данные
//Name1 7 6 5 5 5
//Name2 8 7 6 9 9
//Name3 9 9 9 9 8
//Name4 7 7 7 7 6
//Name5 9 9 9 9 9
//ответ .. Name5
#include <iostream>
#include <vector>
#include <string>
class Pupil
{
private:
std::string m_name;
double m_lesson1;
double m_lesson2;
double m_lesson3;
double m_lesson4;
double m_lesson5;
public:
Pupil( std::string name, double lesson1, double lesson2, double lesson3, double lesson4, double lesson5)
: m_lesson1(lesson1)
, m_lesson2(lesson2)
, m_lesson3(lesson3)
, m_lesson4(lesson4)
, m_lesson5(lesson5)
{}
~Pupil() {}
double rating();
std::string getName()
{
return m_name;
}
};
double Pupil::rating()
{
return (m_lesson1 + m_lesson2 + m_lesson3 + m_lesson4 + m_lesson5)/5;
}
int main()
{
int N = 0;
std::cin >> N;
std::vector<Pupil> pupilVec;
for(int i = 0; i < N; ++i) {
std::string name;
double lesson1 = 0;
double lesson2 = 0;
double lesson3 = 0;
double lesson4 = 0;
double lesson5 = 0;
std::cin >> name >> lesson1 >> lesson2 >> lesson3 >> lesson4 >> lesson5;
pupilVec.push_back(Pupil(name, lesson1, lesson2 , lesson3 , lesson4 , lesson5));
}
Pupil max = pupilVec[0];
for(int i = 1; i < pupilVec.size(); ++i) {
if(pupilVec[i].rating() > max.rating()) {
max = pupilVec[i];
}
}
std::cout << max.getName()<< '\n';
}
Ответы (1 шт):
Автор решения: Егор Филатов
→ Ссылка
Добавьте в список инициализации членов конструктора строчку m_name(name). То бишь:
Pupil( std::string name, double lesson1, double lesson2, double lesson3, double lesson4, double lesson5)
: m_name(name)
, m_lesson1(lesson1)
, m_lesson2(lesson2)
, m_lesson3(lesson3)
, m_lesson4(lesson4)
, m_lesson5(lesson5)
{}