为什么在尝试查找n个元素的平均值时,我没有得到正确的值?

Mau*_*ney 1 c++

我正在阅读一本O'reilly编程书,其中一个问题是"编写一个程序来平均n个元素".

这是我的代码:

#include <iostream>

int n; //number of numbers
int number; //the numbers to be averaged
float avg; //the average of the elements
int counter; //iterator

int main()
{
    std::cout << "Please enter the number of elements you want averaged: ";
    std::cin >> n;
    avg = 0;

    counter = 0;
    while (counter < n)
    {
        std::cout << "enter number: ";
        std:: cin >> number;

        number += number;

        ++counter;

    }

    avg = number/n;

    std::cout << "Average of your " << n << " elements is: " << avg;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当我尝试使用3的3值时,我的平均值为2.我确定我的"数字"声明存在问题,因为它没有取我输入的每个数字的值并添加它彼此相伴.有人可以帮我解决我的错误.我希望我的代码适用于一般情况; 不只是3个元素.谢谢.

Pat*_*shu 5

两个问题.

1)

    std:: cin >> number;

    number += number;
Run Code Online (Sandbox Code Playgroud)

我假设这number是所有数字的总和,但在这里你也使用它来存储一个数字,当你为变量赋值时,它会覆盖已经存在的数字.您必须使用两个不同的变量名称,例如

    std:: cin >> number;

    sum += number;
Run Code Online (Sandbox Code Playgroud)

2)

number/n;是整数除法,因为它number是整数并且n是整数.整数除法向下舍入.将表达式的结果赋给float是不够的 - 为时已晚,表达式已经计算为整数除法.

你想要浮点除法,sum/(double)n例如.