Нахождение среднего (среднего) в переполнении стека

Предполагается, что программа генерирует числа из введенного пользователем ввода (начальное значение и максимальное значение), чтобы создать список чисел в пределах этого значения. После завершения программа должна отобразить среднее значение между всеми отображаемыми числами.

#include <iostream>

int main(void)
{
unsigned int INITIAL_VALUE;
unsigned int MAX_VALUE;

std::cout << "\n\n\nStarting value: ";
std::cin >> INITIAL_VALUE;
std::cout << "\nValue to count to: ";
std::cin >> MAX_VALUE;

std::cout << "\n";

while(INITIAL_VALUE <= MAX_VALUE)
{
++INITIAL_VALUE;
std::cout << INITIAL_VALUE << ", ";
}

// Code to output the average goes here

std::cin.get();
std::cin.get();
}

Я, конечно, попытался решить эту проблему, но я даже не мог обернуться вокруг объяснения. Я знаю, чтобы найти имею в виду (среднее) чисел, просто сложив все числа, а затем разделив их на количество чисел; однако я не могу придумать, как перевести такое простое уравнение в синтаксис C ++. Подробное объяснение будет высоко ценится, и спасибо всем заранее.

-3

Решение

#include <iostream>

int main(void)
{
unsigned int INITIAL_VALUE;
unsigned int MAX_VALUE;
unsigned int sum  = 0;
unsigned int count;
double average;

std::cout << "\n\n\nStarting value: ";
std::cin >> INITIAL_VALUE;
std::cout << "\nValue to count to: ";
std::cin >> MAX_VALUE;

std::cout << "\n";
count = MAX_VALUE - INITIAL_VALUE + 1;

while(INITIAL_VALUE <= MAX_VALUE)
{
sum += INITIAL_VALUE;
++INITIAL_VALUE;
std::cout << INITIAL_VALUE << ", ";
}

// Code to output the average goes here
average = 1.0 * sum / count;

std::cin.get();
std::cin.get();
}
0

Другие решения

То, что вы делаете неправильно, вы не отслеживаете сумму всех значений. А затем вы можете разделить его на количество значений, чтобы получить среднее значение. Так что часть цикла while должна быть

double sum = 0.0;
int n = MAX_VALUE - INITIAL_VALUE + 1;
while(INITIAL_VALUE <= MAX_VALUE)
{
sum += INITIAL_VALUE;
++INITIAL_VALUE;
std::cout << INITIAL_VALUE << ", ";
}

double average = sum/n;
0

По вопросам рекламы [email protected]