
Вопрос задан 26.07.2023 в 14:39.
Предмет Информатика.
Спрашивает Гуцул Артём.
Ребят ,тут такое дело в общем как сказать компьютеру на языке С++ ,что человек вводит
неопределенное кол-во значений. Т.Е. вот пример : учительница выставляет оценки в журнал и из среднего арефметического получается четвертная . Как сказать компу на С++ ,что она введет 1 или 2 или 10 оценок(не суть),но при этом их кол-во варьируется :оценки Васи - 5 5 3 4 5. Пети - 4 4 5 5 4 5 5. Пж напишите прогу . Только простым текстом я начинающий!

Ответы на вопрос

Отвечает Рыжая Ксения.
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <numeric>
- int main()
- {
- std::vector<int> arrayOfDummies;
- for (char answer{0};;)
- {
- std::cout << "You want to enter a rating?" << std::endl;
- std::cin >> answer;
- if (int value{0}; answer == 'y')
- {
- std::cout << "Enter rating:";
- std::cin >> value;
- arrayOfDummies.push_back(value);
- }
- else break;
- }
- std::cout << "Average: " << std::accumulate(arrayOfDummies.begin(), arrayOfDummies.end(), 0) /
- arrayOfDummies.size() << std::endl;
- }



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно, я помогу вам написать программу на языке C++, которая будет вычислять среднее арифметическое оценок, вводимых пользователем. Для того чтобы обработать неопределенное количество значений, мы можем использовать цикл для ввода оценок и их суммирования.
Вот простой код, который решает вашу задачу:
cpp#include <iostream>
int main() {
int totalMarks = 0;
int countMarks = 0;
int mark;
std::cout << "Введите оценки студента (для окончания ввода введите любое значение за пределами диапазона 1-5):" << std::endl;
// Цикл для ввода оценок
while (true) {
std::cin >> mark;
// Проверка на корректный ввод (оценки от 1 до 5)
if (mark < 1 || mark > 5) {
break; // Выход из цикла, если введено некорректное значение
}
totalMarks += mark;
countMarks++;
}
// Проверка, чтобы избежать деления на ноль
if (countMarks > 0) {
double average = static_cast<double>(totalMarks) / countMarks;
std::cout << "Средний балл: " << average << std::endl;
} else {
std::cout << "Оценки не были введены." << std::endl;
}
return 0;
}
Как это работает:
- Мы объявляем переменные
totalMarks
иcountMarks
для хранения суммы оценок и количества введенных оценок соответственно. - Затем выводим сообщение, запрашивающее учителя вводить оценки студентов.
- Запускаем цикл
while (true)
, который будет выполняться до тех пор, пока пользователь будет вводить корректные оценки (числа от 1 до 5). - В цикле мы суммируем введенные оценки в
totalMarks
и увеличиваемcountMarks
на 1 при каждой введенной оценке. - Если пользователь вводит значение за пределами диапазона от 1 до 5, цикл прерывается с помощью
break
. - Далее мы проверяем, были ли введены оценки (чтобы избежать деления на ноль) и, если да, вычисляем среднее арифметическое и выводим его.
- Если оценки не были введены (в случае, если пользователь ничего не ввел или ввел только некорректные значения), выводим соответствующее сообщение.
Теперь у вас есть простая программа, которая может обрабатывать неопределенное количество оценок и находить среднее арифметическое. Надеюсь, это помогло вам понять, как работает цикл и основы работы с переменными на языке C++. Если у вас возникнут еще вопросы, не стесняйтесь задавать!


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili