#include #include #include #include #include using namespace std; ifstream in("Input.txt"); ofstream out("Output.txt"); struct Student { string name, secondname, fam; int year; int mark[5]; int key; void print(); }; void Student::print() { out << setw(12) << left << fam << setw(10) << name << setw(15) << secondname << setw(5) << year;; for (int i = 0; i < 5; i++) { out << setw(3) << mark[i]; } out << setw(5) << key << endl; } void sort(Student *a, int n) { Student temp; for (int i = 0; i < n; i++) { int temp = a[i].key;// запомним i-ый элемент int j = i - 1;//будем идти начиная с i-1 элемента while (j >= 0 && a[j].key > temp) // пока не достигли начала массива // или не нашли элемент больше i-1-го // который храниться в переменной temp { a[j + 1].key = a[j].key; //проталкиваем элемент вверх j--; } a[j + 1].key = temp; } } int main() { int n = 0, m, i; Student stud[10]; if (!in) cout << "Error,file Input.txt doesn't open"; else { in >> m; while (in.peek() != EOF) { in >> stud[n].fam; in >> stud[n].name; in >> stud[n].secondname; in >> stud[n].year; stud[n].key = 0; for (int i = 0; i < 5; i++) { in >> stud[n].mark[i]; stud[n].key+=mark[i]; } n++; } sort(stud, n); out << m << endl; for (int i = n - 1; i >= 0; i--) stud[i].print(); } in.close(); out.close(); return 0; }