Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <windows.h>
- using namespace std;
- struct STUDENT { // Структура студент
- string FIO;// Фамилия
- int group;// группа
- int marks[5];// оценки
- int sum;
- };
- STUDENT Copy(STUDENT st) { // копирование для сортировки
- STUDENT newSt;
- newSt.FIO = st.FIO;
- for (int i = 0; i < 5; i++) {
- newSt.marks[i] = st.marks[i];
- }
- newSt.group = st.group;
- return newSt;
- }
- void Input(STUDENT &st) {//ввод студентов
- cin >> st.FIO;
- cin >> st.group;
- for (int i = 0; i < 5; i++) {
- cin >> st.marks[i];
- }
- for (int i = 0; i < 5; i++) {
- st.sum += st.marks[i];
- }
- }
- void Sort(STUDENT studs[], int len) { // сортировка
- for (int i = 0; i < len; i++) {
- for (int j = 0; j < len-1; j++) {
- if (studs[j].sum > studs[j+1].sum) {
- STUDENT buf = Copy(studs[j]);
- studs[j] = studs[j+1];
- studs[j+1] = buf;
- }
- }
- }
- }
- bool Good(STUDENT st) { // поиск хорошистов и отличников
- int count = 0;
- for (int i = 0; i < 5; i++)
- if (st.marks[i] == 4 || st.marks[i] == 5)
- count++;
- if (count == 5)
- return true; // если количество "4" и "5" равняется общему количеству оценок (5) то это хорошист
- return false;
- }
- void Output(STUDENT &st) { //вывод
- cout << st.FIO << " " << st.group << " ";
- for (int j = 0; j < 5; j++) {
- cout << st.marks[j] << " ";
- }
- cout << "\n";
- }
- void Output_Good(STUDENT &st) { //вывод хорошистов
- cout << st.FIO << " " << st.group;
- cout << "\n";
- }
- int main(int argc, CHAR* argv[]) {
- const int len = 10;
- STUDENT students[len];
- for (int i = 0; i < len; i++) {
- Input(students[i]);
- }
- Sort(students, len);
- for (int i = 0; i < len; i++) {
- Output(students[i]);
- }
- int GoodCount = 0;
- for (int i = 0; i < len; i++) {
- if (Good(students[i])) {
- Output_Good(students[i]);
- GoodCount++;
- }
- }
- if (GoodCount == 0) {
- cout << "No\n";
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement