/
Feltel
/
Zadania
Обзор
Документация
Войти
/
Feltel
/
Zadania
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
untitled4.cpp
106 строк
3 KB
Feltel
upload files
28 окт 2025, 07:36
28 окт 2025, 07:36
244caa6
Код
Авторство
О чём код?
#include <iostream> #include <vector> #include <algorithm> #include <iomanip> using namespace std; struct Student { string surname; char initial; string studentID; int examScores[4]; double averageScore() const { double sum = 0; for (int score : examScores) { sum += score; } return sum / 4; } }; bool compareStudents(const Student &a, const Student &b) { if (a.surname == b.surname) { return a.averageScore() > b.averageScore(); } return a.surname < b.surname; } double calculateGroupAverage(const vector<Student> &students) { double total = 0; for (const auto &student : students) { total += student.averageScore(); } return total / students.size(); } void findStudents(const vector<Student> &students) { cout << "Отличники:\n"; for (const auto &student : students) { if (student.averageScore() >= 4.5) { cout << student.surname << " " << student.initial << "\n"; } } cout << "\nХорошисты:\n"; for (const auto &student : students) { if (student.averageScore() >= 3.5 && student.averageScore() < 4.5) { cout << student.surname << " " << student.initial << "\n"; } } cout << "\nСтуденты с оценкой 'удовлетворительно':\n"; for (const auto &student : students) { bool hasSatisfactory = false; for (int score : student.examScores) { if (score == 3) { hasSatisfactory = true; break; } } if (hasSatisfactory) { cout << student.surname << " " << student.initial << "\n"; } } cout << "\nНе сдавшие сессию:\n"; for (const auto &student : students) { bool failed = false; for (int score : student.examScores) { if (score < 3) { failed = true; break; } } if (failed) { cout << student.surname << " " << student.initial << "\n"; } } } int main() { setlocale(LC_ALL, ""); vector<Student> students = { {"Иванов", 'И', "001", {4, 5, 3, 4}}, {"Петров", 'П', "002", {2, 3, 4, 3}}, {"Сидоров", 'С', "003", {5, 5, 5, 4}}, {"Кузнецов", 'К', "004", {3, 3, 2, 3}}, {"Смирнов", 'С', "005", {4, 4, 4, 4}} }; sort(students.begin(), students.end(), compareStudents); cout << "Список студентов:\n"; for (const auto &student : students) { cout << student.surname << " " << student.initial << " - Средний балл: " << fixed << setprecision(2) << student.averageScore() << "\n"; } double groupAverage = calculateGroupAverage(students); cout << "\nСредний балл группы: " << fixed << setprecision(2) << groupAverage << "\n"; findStudents(students); return 0; }