C++数组平均值工作不正常
C++ Array average not working right
所以我使用C++,我不知道我做错了什么
要找到平均值,只需将数组中的数字相加,然后俯冲购买数组中的数量
我觉得我的问题在于数组,但我不确定,因为我得到的是平均结果。
所以我输入了这个
2
3
4
5
6
输出
The average number is -1.71799e+008
这些数字的正确平均值是4,所以我不确定我的错误在哪里。任何帮助或提示都会很有帮助。我也根据我在这里看到的堆栈溢出设置了我的平均线,但仍然没有运气。
#include <iostream>
#include <iomanip>
using namespace std;
void main ()
{
//Variables
double average;
double sum = 0;
int numabove = 0;
int i, array[5];
int n = 5;
//array
cout << "Input 5 values.." << endl;
for( i = 0; i < 5; ++i )
cin >> array[5];
for (int i = 0; i < 5; i++)
//average
average = ((float(array[i])/n));
cout <<"The average number is " << average << "n" << endl;
//loop
// I will do the loop after the average is working. Because
// i need the average to work so i can do the loop which use's the loop below
cout << "The numbers above average are: " << numabove << endl;
system("PAUSE");
}
您将所有数字读入
cin >> array[5];
它不存在并产生未定义的行为。更正为:
for( i = 0; i < 5; ++i )
cin >> array[i];
然后正确计算平均值:
double average = 0;
for ( int i = 0; i < 5; ++i) {
sum += array[ i];
}
average = sum / n;
也许你也可以看看std::vector
,它是C++动态数组,非常灵活,易于使用。有了这个,你可以写:
std::vector<int> v(5);
for( i = 0; i < 5; ++i )
std::cin >> v[i];
double sum = std::accumulate( v.begin(), v.end(), 0.0);
double mean = sum / v.size();
在for循环读取值中,应该有:
for( i = 0; i < 5; ++i )
cin >> array[i];
否则,您只读取索引5(cin >> array[5]
)处的所有值。
然后,后面的算法应该对所有值求和,而不是覆盖平均变量5次:
average = 0;
for (int i = 0; i < 5; i++)
//average
average += ((float(array[i])/n));
您总是在同一点中输入数字
环路应该是
for( i = 0; i < 5; ++i )
cin >> array[i];
此外,索引5超出范围,有效索引为{0,1,2,3,4}
最后你没有求和整个阵列
你得到的结果是因为数组的数据没有初始化
最快的解决方案可能是
int sum = 0; //initialize it really important
for( i = 0; i < 5; ++i )
{
int num;
cin >> num;
sum += num;
}
double average = double(sum) / 5.0;
for (int i = 0; i < 5; i++) {
sum += array[i];
}
average = sum / n;
相关文章:
- 不确定要在我的main中放入什么才能使我的代码正常工作
- C++中的memset函数工作不正常
- 为什么 HeapFree() 不能正常工作?
- 如果不在窗口 10 中声明名为 openCV 的 openCV namedWindow,QT 图像显示将无法正常工作
- 通用线程池类工作不正常
- 循环仅对第一行正常工作.其他行不受 for 的影响
- 为什么在C++中使用关系运算符创建的模板函数不能对字符串正常工作?
- C++自定义删除运算符不能正常工作?
- 为什么使用 exec() 重新启动程序不能正常工作?
- C++:返回本地对象,但不能正常工作
- 名为DLL的C++windows服务程序工作不正常
- C++-循环中的If语句工作不正常
- 为什么带lcov的codecov在Travis上不能正常工作,而在我当地的Linux Mint上却不能正常工作
- While循环和if/else语句工作不正常
- 为什么sizeof函数在这里不能正常工作
- 异步操作的 Asio 处理程序在其同步对应项正常工作时不会调用
- C++:最大数组值函数工作不正常
- 图像上的按钮不正常工作在QT
- 透明SDL2游戏(WIN32色键不正常工作)
- Qt 5.3 QSystemTrayIcon不正常工作[Linux]