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

Определить порядковый номер дисциплины с которой был получен самый высокий средний балл на с++

23.09.2019, 07:41. Показов 1339. Ответов 7
Метки нет (Все метки)

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

Нужно объяснить сам алгоритм работы этой программы на с++
Буду благодарен вашему ответу.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.09.2019, 07:41
Ответы с готовыми решениями:

Определить, на каком факультете самый высокий средний балл по программированию
#include <conio.h> #include <stdio.h> #include <iostream> int i,max=0,c=0; struct predmet { int P; // программирование int V;...

Запрос в базе данных: код дисциплины, название дисциплины и средний балл
Вот создала новую тему, а то в той я вроде всех запутала). мне уже помогали с этим запросом, но препод опять не приянл. вот замечание...

Ввести информацию из файла и определить номер школы, ученики которой имеют максимальный средний балл
Необходимо: Записать в файл информацию о школьниках: <фамилия>, <возраст>, <номер школы>, <класс>, <оценки по 3-м...

7
Модератор
 Аватар для long399
2882 / 1837 / 933
Регистрация: 16.10.2013
Сообщений: 5,241
Записей в блоге: 15
23.09.2019, 08:06
Ваши входные данные это строка цифр с оценками. всего 60 символов, т.к. дисциплины 3, а студентов 20.
пример строки: 445343455...555

можно пройтись по этой строке 3 раза циклом с шагом 3.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int sum1 = 0; // 1 дисциплина
int sum2 = 0; // 2 дисциплина
int sum3 = 0; // 3 дисциплина
 
for(int i = 0; i < 60; i += 3){
  sum1 += atoi(notes[i]); // баллы по первой дисциплине
}
for(int i = 1; i < 60; i += 3){
  sum2 += atoi(notes[i]); // баллы по второй дисциплине
}
for(int i = 2; i < 60; i += 3){
  sum3 += atoi(notes[i]); // баллы по третьей дисциплине
}
После этого находите максимальное из трех посчитанных сумм. Номер соответствующей дисциплины - это ответ.

Добавлено через 5 минут
Эти рассуждения верны, если оценки записываются в виде троек для каждого студента. 445 - оценки первого студента по каждой из дисциплин, 343 - оценки второго и т.д.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
23.09.2019, 08:45
long399, а зачем так громоздко?
C++
1
2
3
4
5
 int summ[3] = {0};
 
  for(int i=0; i<3; i++)
   for(int j=i; j<60; j+=3)
    summ[i] =atoi(notes[i]);
0
Модератор
 Аватар для long399
2882 / 1837 / 933
Регистрация: 16.10.2013
Сообщений: 5,241
Записей в блоге: 15
23.09.2019, 08:51
TrollHammer, я то что выше на коленке просто писал, громоздко написал, чтобы ТС понятнее было. Ну а так, да, Ваш вариант конечно компактнее, согласен.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
23.09.2019, 09:08
Цитата Сообщение от TrollHammer Посмотреть сообщение
atoi(notes[i]);
вот тут ошибка у меня, надо
C++
1
atoi(notes[j])
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.09.2019, 14:44
long399, TrollHammer если данные заданы
Цитата Сообщение от Artem222 Посмотреть сообщение
в виде последовательности цифр с клавиатуры
зачем советовать ТС применять atoi ?

Цитата Сообщение от Artem222 Посмотреть сообщение
Нужно объяснить сам алгоритм работы этой программы на с++
т.е. Вам нужен алгоритм, а программу хотите написать самостоятельно, правильно Вас понимаю ? среднее находить не обязательно - достаточно сумм.

ВАРИАНТ 1 с массивом (тривиальный)
Создаёте двумерный массив оценок a[20][3]. Находите сумму каждого столбца. Из трёх значений сумм выбираете максимальное (не забывайте, что значения сумм могут совпадать). Осталось связать сумму с номером столбца. Можно поместить значения sum в массив или просто выводить сообщения, например:
if (sum1>sum2 && sum1>sum3) cout << "Number 1";

ВАРИАНТ 2 без массива (чуть менее тривиальный)
Вводите все значения в цикле. Находите сумму каждого третьего значения ( if(i%3==0) sum3+=a; ), каждого второго значения ( if((i+1)%3==0 sum2+=a; ), каждого первого значения ( if((i+2)%3==0 sum1+=a; ). Здесь i - номер введённого значения.
0
 Аватар для Artem222
0 / 0 / 0
Регистрация: 07.12.2016
Сообщений: 197
24.09.2019, 06:41  [ТС]
Я хотел спросить где мне брать переменную NOTES?
0
Модератор
 Аватар для long399
2882 / 1837 / 933
Регистрация: 16.10.2013
Сообщений: 5,241
Записей в блоге: 15
24.09.2019, 11:33
Цитата Сообщение от Artem222 Посмотреть сообщение
Я хотел спросить где мне брать переменную NOTES?
Это как вашей душе угодно.

1) вводить пользователем через консоль;
2) считывать из файла;
3) рандомно генерировать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.09.2019, 11:33
Помогаю со студенческими работами здесь

Определить средний оклад и ФИО сотрудника имеющего самый высокий оклад
всем привет, прошу понять меня правильно поступил на программиста но понял что нечего не получается и не мое это но чтоб перевестись...

Вычислить средний балл в каждой группе студентов и определить, какая группа имеет наибольший средний балл
две группы студентов (1-ая -13 человек, 2-ая - 8 человек) сдают экзамен по информатике. Написать программу, вычисляющую, средний балл в...

Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего
Ведомость абитуриентов, сдавших вступительные экзамены в университет содержит: Ф. И. О. абитуриента, оценки. Определить средний балл по...

Определите экзамен, на который ученики получили высокий средний балл
По окончанию школы ученики сдавали экзамены по лит-ре, алгебре, физике, информатике. Определите экзамен, на который ученики получили...

Найти самый высокий балл тестирования по языкам программирования за эту неделю
&quot;Найти самый высокий балл тестирования по языкам программирования за эту неделю&quot; Вывести номер Фамилии и номер дня тестирования ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru