【问题标题】:Finding the Mean (Average) in C++在 C++ 中求平均值
【发布时间】:2014-02-13 10:59:20
【问题描述】:

关于计划

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

我的代码

#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();
}

当然,我试图解决这个问题,但我什至无法解释。我知道通过简单地将所有数字相加,然后除以数字的数量来找到数字的 mean(平均值);但是,我想不出将这样一个简单的等式转换为 C++ 语法的方法。非常感谢您提供详尽的解释,并提前感谢大家。

【问题讨论】:

  • 让我们开始考虑在 C++ 中将两个数字相加。你知道如何做到这一点并存储结果吗?
  • 您需要跟踪 2 条数据(实际数字除外):运行总和(总计)和数据点数。
  • 这不是家庭作业,但是我会简单地取两个数字,将它们相加,然后将它们分配给一个变量。
  • 为什么不使用for 循环而不是while
  • 我主要对如何将 0-10,000 加在一起感到困惑。这是我的主要问题。

标签: c++ mean


【解决方案1】:
#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();
}

【讨论】:

  • 我知道该怎么写,但我不知道如何计算所有的数字。
  • sum += INITIAL_VALUE; 程序将值迭代器从INITIAL_VALUE 求和到MAX_VALUE
【解决方案2】:

你做错了什么是你没有跟踪所有值的总和。然后你可以将它除以值的数量以获得平均值。所以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;

【讨论】:

    猜你喜欢
    • 2021-05-17
    • 2022-01-19
    • 2012-10-30
    • 2017-03-22
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多