Выведите фамилии и имена учащихся в порядке убывания их среднего .

Входные данные

Заданы сначала количество учащихся n, затем n строк, каждая из которых содержит фамилию, имя и три числа (оценки по трем предметам: математике, физике, информатике). Данные в строке разделены одним пробелом. Оценки принимают значение от 1 до 5.

Выходные данные

Необходимо вывести пары фамилия-имя по одной на строке, разделяя фамилию и имя одним пробелом. Выводить оценки не нужно. Если несколько учащихся имеют одинаковые средние , то их нужно выводить в порядке, заданном во входных данных.

Sample Input:

3
Markov Valeriy 5 5 5
Sergey Petrov 1 1 1
Petrov Petr 3 3 3
Sample Output:

Markov Valeriy
Petrov Petr
Sergey Petrov
вот мой код:
#include
#include
#include
#include
using namespace std;

struct man {
string name;
string surname;
double point;
};

bool s (man a, man b) {
return a.point >= b.point;
}

int main() {
int n;
cin >> n;
vector a(n);
for (int i = 0; i < n; i++) {
string temp_name, temp_surname;
int pointTemp1, pointTemp2, pointTemp3;
double temp_point;
cin >> temp_name >> temp_surname >> pointTemp1 >> pointTemp2 >> pointTemp3;
temp_point = pointTemp1 + pointTemp2 + pointTemp3;
man struct_temp;
struct_temp.name = temp_name;
struct_temp.surname = temp_surname;
struct_temp.point = temp_point;
a[i] = struct_temp;
}
stable_sort(a.begin(), a.end(), s);
for (auto now : a) {
cout << now.name << ' ' << now.surname << endl;
}
return 0;
}
Надо как-то добавить ,когда четыре отличника

didocfofiffi didocfofiffi    2   30.03.2020 05:09    153

Другие вопросы по теме Информатика