读书人

基础数组有关问题

发布时间: 2012-02-16 21:30:36 作者: rapoo

基础数组问题
#include <iostream>
using namespace std;
const int MAX=10;
int main()
{
double donation[MAX];
int i=0;
double sum=0;
double ave=0;
double compare=0;
while(cin> > donation[i]&&i <MAX)
{
sum+=donation[i];
i++;
}
ave=sum/i;
cout < < "The average of these numbers are : " < <ave < <endl;
for(int j=0;j <i;j++)
{
if(donation[j]> ave)
compare++;
}
cout < < "The numbers of big than the arrays are : " < <compare < <endl;
return 0;
}

是要连续输入10个数字,但当遇到不是数字时程序会自动结束并计算平均值和比平均值大的元素个数

为什么我全部输入完数字后,调试会出现内存错误呢


[解决办法]
调试一下,在哪崩了。
sum+=donation[i]; 应该先判断donation[i]是否为数字,再加

[解决办法]
while(i <MAX && cin> > donation[i])

[解决办法]
楼主肯定输入超过10个(包括最后的非数字)
while(cin> > donation[i]&&i <MAX),这个逻辑有问题,及时i已经达到最大值,还是会执行cin,就造成数组越界了,改成楼上那样

读书人网 >C++

热点推荐