Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.03.2023
Сообщений: 3

Найти среднюю оценку каждого студента и выбрать человека, имеющего максимальный средний балл

20.03.2023, 17:26. Показов 797. Ответов 1
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, требуется решение задачи на С++. Желательно с комментариями что бы был понятен ход мыслей. В основе должна быть структура, без использований сложных функций.

У меня начало было такое, потом что то не пошло..

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <string.h>
#include <clocale>
 
using namespace std;
 
//создали 2 структуры
 
struct name {
    char first_name[40];
    char second_name[40];
    char surname[40];
};
 
struct strc {
    name fio;
    int ocenkdis[40];
    double srb;
} mstud[100];
 
//ввод данных
int main()
{
    int nstud, kolvoocenok = 0;
    cout << "Vvedite kol-vo studentov" << endl;
    cin >> nstud;
 
    for (int i = 0; i < nstud; i++)
    {
        cout << "Vvedite FIO: ";
        cin >> mstud[i].fio.first_name;
        cin >> mstud[i].fio.second_name;
        cin >> mstud[i].fio.surname;
 
        cout << "Vvedite ocenki po 4 dis: ";
        cin >> mstud[i].ocenkdis;
 
       
    }
Для каждого из N студентов группы известны ФИО и оценки (в баллах) по четырем дисциплинам. Найти среднюю оценку каждого студента и выбрать человека, имеющего максимальный средний бал.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2023, 17:26
Ответы с готовыми решениями:

Найти среднюю оценку каждого студента и выбрать человека, имеющего максимальный средний балл
для каждого из N студентов группы известны ФИО и оценки(в баллах) по четырем дисциплинам .Найти среднюю оценку каждого студента и выбрать...

Описать тип Student, и определить студента, имеющего максимальный средний балл
Определить структурный тип СТУДЕНТ, включив в него : фамилию (char), курс (int), группу (int), массив экзаменационных оценок (int)....

Выбор студента, имеющего максимальный средний балл по итогам сессии
1) Составить программу обработки сведений о студентах своей группы. Данные вводить с клавиатуры и результат выводить на экран. Сведения...

1
 Аватар для Юля_программист
682 / 192 / 60
Регистрация: 04.05.2012
Сообщений: 886
Записей в блоге: 1
21.03.2023, 12:46
brinky,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <string.h>
#include <clocale>
#include <vector>
 
using namespace std;
 
//создали 2 структуры
 
struct name {
    //функция которая выводит фио
    void showFIO()
    {
      cout << first_name <<" "<< second_name << " " << surname;
    }
 
    string first_name="";
    string second_name="";
    string surname="";
};
 
struct Student {//давайте осмысленные названия
    name fio;
    vector<int> listMakr;//vector - стандартный контейнер С++, простым языком тоже самое что и массив
    double srb=0.00;
 
    //функция которая посчитает средний балл студента на основе того, что мы записали в listMakr
    double getAverangeMark(){
        double average=0.00;
        for(int mark : listMakr){//цикл из стандарта С++11 который проходит по всему контейнеру listMark
          average += mark;//считаем средний запись аналогичгна average =average + mark
        }
        return average/4;//делим результат сложения на кол-во оценок
    }
};
 
//ввод данных
int main()
{
    vector<Student> listStident;//обьявляем вектор, где будет хранить данные наших студентов
    int nstud = 1;
    cout << "Vvedite kol-vo studentov" << endl;
    cin >> nstud;
 
    for (int i = 0; i < nstud; i++)
    {
        Student st;
        cout << "Vvedite FIO: ";
        cin >> st.fio.first_name;
        cin >> st.fio.second_name;
        cin >> st.fio.surname;
 
        cout << "Vvedite ocenki po 4 dis: ";
        int mark=0;
        for(int cnt=0;cnt < 4;cnt++){
            cin >> mark;
            st.listMakr.emplace_back(mark);
        }
 
 
        listStident.emplace_back(st);//вставляем в наш вектор запись со студентом
    }
    cout << " _______________ "<<std::endl;
    Student st;//переменная куда запомним студента к которого самый высокий средний балл
    double max=0.0;//храним максимальный балл
    for(Student tempSt : listStident){
        tempSt.fio.showFIO();//вызываем функции showFIO() которую определели в структуре name
        cout <<" "<< tempSt.getAverangeMark() << std::endl;
        if(tempSt.getAverangeMark() > max){//проверяем что средний балл текущего студента больше максимума
            //если да то в 
            max = tempSt.getAverangeMark();// max записываем средний балл этого студента, на следующей итерации будем сравнимвать уже с этим баллом
            st = tempSt;//запоминаем данные этого студента, чтобы потом вывести
        }
    }
    cout << " _______________ "<<std::endl;//std::endl - для того, чтобы слудующий вывод был на новой строке
    cout<<"Maximum average mark - ";
    st.fio.showFIO();
    cout << " = "<<st.getAverangeMark();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.03.2023, 12:46
Помогаю со студенческими работами здесь

Известны результаты сдачи трех экзаменов десятью студентами. Найти средний балл каждого студента и общий средний балл
Известны результаты сдачи трех экзаменов десятью студентами. Найти средний балл каждого студента и общий средний балл. Точность...

Найти средний балл каждого студента и общий средний балл
Известны результаты сдачи трех экзаменов десятью студентами. Найти средний балл каждого студента и общий средний балл. Точность...

Найти средний балл каждого студента и общий средний балл
Известны результаты сдачи трех экзаменов десятью студентами. Найти средний балл каждого студента и общий средний балл. Точность среднего...

Найти студента, имеющего средний балл равный величине, введенной с клавиатуры
Условие: Создать массив структур с полями согласно варианту. Найти в массиве заданный элемент указанными методами поиска (для...

Найти среднюю оценку каждого студента и найти студента с максимальным средним баллом
Пусть известны фамилии и оценки по 5 дисциплинам каждого из 10 студентов. Найти среднюю оценку каждого студента и найти студента с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
ПЛИС
zxcha1ka_ 27.01.2026
AHDL Разработать программы для синтеза следующих устройств: 1. Параллельного регистра 4-х разрядного с синхронной загрузкой и асинхронным сбросом (обнулением); Пoмoгитe пoжaлyйстa
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru