Написать программу, запрашивующую у пользователя в бесконечном цикле число и выводящую среднее значение всех введённых ранее чисел.

Вывод в формате: "Среднее значение этих ... чисел равно ...". Среднее значение выводить с точностью до 5 десятичных знаков (т.е. до 1/100000).

Программа перестаёт работать или при вводе символа вместо числа, или при истечении 1 минуты с момента ввода первого числа

Kirill316111 Kirill316111    2   07.07.2021 12:14    16

Ответы
milota5 milota5  06.08.2021 12:40

Примерно так

#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);

}


Написать программу, запрашивующую у пользователя в бесконечном цикле число и выводящую среднее значе
ПОКАЗАТЬ ОТВЕТЫ
Nosochekxnncnnc Nosochekxnncnnc  06.08.2021 12:40

#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-файл в закрепе*/

 

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика