Вопрос задан 21.06.2023 в 17:41. Предмет Информатика. Спрашивает Солонец Алексей.

С++. Срочно нужна помощь!!! Написать программу, запрашивующую у пользователя в бесконечном цикле

число и выводящую среднее значение всех введённых ранее чисел. Вывод в формате: "Среднее значение этих ... чисел равно ...". Среднее значение выводить с точностью до 5 десятичных знаков (т.е. до 1/100000). Программа перестаёт работать или при вводе символа вместо числа, или при истечении 1 минуты с момента ввода первого числа
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Тумаев Захар.

Ответ:

Примерно так

#include <iostream>

#include <chrono>

#include <ctime>    

int main()

{

   auto start = std::chrono::system_clock::now();

   auto end = std::chrono::system_clock::now();

   bool Cycle = true;

   double SredSum=0;

   std::time_t end_time;

   double Entered = 0, count = 0;

   setlocale(LC_ALL, "Russian");

   std::cout.precision(5);

   std::chrono::duration<double> elapsed_seconds = end - start;

   do {

       std::cin >> Entered;

       if (std::cin.fail()){

           Cycle = false;

           break;

       }

       end = std::chrono::system_clock::now();

       elapsed_seconds = end - start;

       

       SredSum = ((SredSum * count) + Entered) / (count + 1.0);

       count++;

       std::cout << "Среднее значение этих " << count << " чисел равно " << SredSum << std::endl;

       if (elapsed_seconds.count() > 60) { Cycle = false; }

   } while (Cycle);

}


0 0
Отвечает Кадырова Чулпан.

#include <iostream>

#include <ctime>

using namespace std;

double running_avg(double i);

void main()

{

setlocale(LC_ALL, "RU");//русский язык

clock_t t1, t2;

t1 = clock() / 1000;//начало отсчета(в секундах)

double num;

while (true)

{

 t2 = clock() / 1000;

 cout << "Введите значение (для выхода введите любой знак или дождитесь 60 секунд от запуска программы)\n";

 if (!(cin >> num) || (t2 - t1 > 60)) break;//конец отсчета  

 cout << "Среднее значение всех чисел равно: " << running_avg(num) << "\n\n\n";

}

}

double  running_avg(double i) {

static double sum = 0;//при каждом новом вызове функции значения sum и count сохраняются

static int count = 0;

sum = sum + i;

count++;

return sum / count;//среднее значение

}  

/*cpp-файл в закрепе*/

 


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для создания такой программы на C++ вы можете использовать следующий код. В нем используется библиотека <iostream> для ввода и вывода, <ctime> для отслеживания времени и <cstdlib> для обработки ошибок при вводе.

cpp
#include <iostream> #include <ctime> #include <cstdlib> int main() { double sum = 0.0; int count = 0; std::time_t startTime = std::time(nullptr); while (true) { std::cout << "Введите число: "; std::string input; std::cin >> input; if (std::cin.fail()) { std::cout << "Ошибка ввода. Программа завершает работу." << std::endl; break; } double number = std::atof(input.c_str()); if (std::abs(number) < 1e-5) { std::cout << "Среднее значение этих " << count << " чисел равно " << sum << std::endl; break; } sum += number; count++; std::time_t currentTime = std::time(nullptr); if (currentTime - startTime >= 60) { std::cout << "Истекло 1 минута с момента ввода первого числа. Программа завершает работу." << std::endl; break; } double average = sum / count; std::cout.precision(5); std::cout << "Среднее значение этих " << count << " чисел равно " << std::fixed << average << std::endl; } return 0; }

Этот код запрашивает числа от пользователя в бесконечном цикле, вычисляет среднее значение и выводит его с точностью до 5 знаков после запятой. Программа завершает работу, если прошло более минуты с момента ввода первого числа или если пользователь ввел что-то, что не является числом.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос