2014-01-23 235 views
-3

关于方案

程序应该产生来自供给用户输入(初始值和最大值)编号,以产生数为那些值中的一个列表。一旦完成,程序需要显示所有显示的数字之间的平均值。找到平均值(平均)在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;'程序将值从'INITIAL_VALUE'加到'MAX_VALUE' – Charles0429

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;