Advertisement
TwITe

Untitled

Aug 27th, 2017
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. struct students_result {
  2.     vector <string> name;
  3.     vector <int> marks;
  4. };
  5.  
  6. double average_mark(vector <int>& a) {
  7.     int sum_marks = 0;
  8.     for (auto mark : a) {
  9.         sum_marks += mark;
  10.     }
  11.     return (sum_marks / 3.0);
  12. }
  13.  
  14. bool marks_compare(students_result first_student, students_result second_student) {
  15.     return (average_mark(first_student.marks) > average_mark(second_student.marks));
  16. }
  17.  
  18. void task5() {
  19.     int n;
  20.     cin >> n;
  21.     vector <students_result> students(n);
  22.     for (int i = 0; i < n; i++) {
  23.         students_result current_student;
  24.         for (int i = 0; i < 2; i++) {
  25.             string name;
  26.             cin >> name;
  27.             current_student.name.push_back(name);
  28.             if (i != 1) {
  29.                 current_student.name.push_back(" ");
  30.             }
  31.         }
  32.         for (int i = 0; i < 3; i++) {
  33.             int mark;
  34.             cin >> mark;
  35.             current_student.marks.push_back(mark);
  36.         }
  37.         students[i] = current_student;
  38.     }
  39.     stable_sort(students.begin(), students.end(), marks_compare);
  40.     for (auto student : students) {
  41.         for (auto name : student.name) {
  42.             cout << name;
  43.         }
  44.         cout << endl;
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement