C/C++

Напишите программу на С++ на заданную задачу

Проверили сообразительность детей с помощью шести тестов. Имеются следующие данные: фамилия ребенка, оценка за каждый тест (от 0 до 5). Определить средний балл для каждого ребенка и общий средний балл. Определить наиболее часто встречающуюся оценку. Выполнить сортировку списка.
ChatGPT:


#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <map>

struct Child {
std::string surname;
std::vector<int> scores;
};

// Функция для вычисления среднего балла
double calculateAverage(const std::vector<int>& scores) {
int sum = 0;
for (int score : scores) {
sum += score;
}
return static_cast<double>(sum) / scores.size();
}

int main() {
std::vector<Child> children;

// Ввод данных о детях и их оценках
int numChildren;
std::cout << "Введите количество детей: ";
std::cin >> numChildren;

for (int i = 0; i < numChildren; ++i) {
Child child;
std::cout << "Введите фамилию ребенка: ";
std::cin >> child.surname;

std::cout << "Введите оценки ребенка (от 0 до 5): ";
for (int j = 0; j < 6; ++j) {
int score;
std::cin >> score;
child.scores.push_back(score);
}

children.push_back(child);
}

// Вычисление среднего балла для каждого ребенка и общего среднего балла
double totalAverage = 0.0;
int totalNumScores = 0;

for (const Child& child : children) {
double average = calculateAverage(child.scores);
std::cout << "Средний балл для ребенка " << child.surname << ": " << average << std::endl;

totalAverage += average;
totalNumScores += child.scores.size();
}

totalAverage /= numChildren;
std::cout << "Общий средний балл: " << totalAverage << std::endl;

// Поиск наиболее часто встречающейся оценки
std::map<int, int> scoreFrequency;
for (const Child& child : children) {
for (int score : child.scores) {
scoreFrequency[score]++;
}
}

int mostFrequentScore = 0;
int maxFrequency = 0;

for (const auto& pair : scoreFrequency) {
if (pair.second > maxFrequency) {
mostFrequentScore = pair.first;
maxFrequency = pair.second;
}
}

std::cout << "Наиболее часто встречающаяся оценка: " << mostFrequentScore << std::endl;

// Сортировка списка детей по фамилии
std::sort(children.begin(), children.end(), [](const Child& a, const Child& b) {
return a.surname < b.surname;
});

// Вывод отсортированного списка детей
std::cout << "Список детей после сортировки:" << std::endl;
for (const Child& child : children) {
std::cout << child.surname << std::endl;
}

return 0;
}
Тарас Монченко
Тарас Монченко
16 439
Лучший ответ
Сергей Панов Спасибо!)
Волшебное слово забыл.
Don Kairatleone Karuzzo
Don Kairatleone Karuzzo
52 813