在C ++中查找均值(平均值)

时间:2014-01-23 03:49:16

标签: c++ mean

关于该计划

程序应该从提供的用户输入(初始值和最大值)生成数字,以生成在这些值范围内的数字列表。完成后,程序需要显示所有显示的数字之间的平均值。

我的代码

#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 ++语法的方法。我将非常感谢您的全面解释,并感谢所有人提前。

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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;