2014-01-23 4 views
-3

О программе

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

Мой код

#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++. Подробное объяснение было бы очень оценено и благодаря каждому заранее.

+1

Начнем с размышления о добавлении двух чисел в C++. Знаете ли вы, как вы это сделаете и сохраните результат? – YXD

+0

Вам необходимо отслеживать 2 части данных (кроме фактических чисел): текущая сумма (сумма) и количество точек данных. –

+0

Это не домашнее задание, но да, я просто возьму два числа, добавлю их, а затем назначу их переменной. – Jake2k13

ответ

0
#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

Я знаю, как писать, но я не понимаю, как подсчитать все числа. – Jake2k13

+0

'sum + = INITIAL_VALUE;' программа суммирует значение iter от 'INITIAL_VALUE' до' MAX_VALUE' – Charles0429

0

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

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;