Предполагается, что программа генерирует числа из введенного пользователем ввода (начальное значение и максимальное значение), чтобы создать список чисел в пределах этого значения. После завершения программа должна отобразить среднее значение между всеми отображаемыми числами.
#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 ++. Подробное объяснение будет высоко ценится, и спасибо всем заранее.
#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();
}
То, что вы делаете неправильно, вы не отслеживаете сумму всех значений. А затем вы можете разделить его на количество значений, чтобы получить среднее значение. Так что часть цикла 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;