Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include<iomanip>
- using namespace std;
- ifstream in("input.txt");
- ofstream out("output.txt");
- struct mas
- {
- string fam, name, secname;
- int birth, gr[5];
- int sum;
- void print();
- };
- void mas::print()
- {
- out << setw(12) << left << fam << setw(15) << name << setw(18) << secname;
- out << setw(8) << birth;
- for (int i = 0; i < 5; i++)
- out << setw(3) << gr[i];
- out << setw(5) << sum << endl;
- }
- void sort(mas*a, int length)
- {
- int temp, // временная переменная для хранения значения элемента сортируемого массива
- item; // индекс предыдущего элемента
- for (int counter = 1; counter < length; counter++)
- {
- temp = a[counter].sum; // инициализируем временную переменную текущим значением элемента массива
- item = counter-1; // запоминаем индекс предыдущего элемента массива
- while(item >= 0 && a[item].sum < temp) // пока индекс не равен 0 и предыдущий элемент массива больше текущего
- {
- swap(a[item+1],a[item]);
- item--;
- }
- }
- }
- int main()
- {
- setlocale(LC_ALL, "rus");
- int n = 0, m, i;
- mas stud[2000];
- if (!in) out << "Файл не найден" << endl;
- else
- {
- in >> m;
- while (in.peek() != EOF)
- {
- in >> stud[n].fam;
- in >> stud[n].name;
- in >> stud[n].secname;
- in >> stud[n].birth;
- stud[n].sum = 0;
- for (int i = 0; i < 5; i++)
- {
- in >> stud[n].gr[i];
- stud[n].sum = stud[n].sum + stud[n].gr[i];
- }
- n++;
- }
- sort(stud, n);
- out << m << endl;
- for (i = 0; i < n; i++)
- stud[i].print();
- }
- //system("pause");
- in.close();
- out.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement