我正在阅读一本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个元素.谢谢.
两个问题.
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例如.
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |