首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

基础数组有关问题

2012-02-16 
基础数组问题#includeiostreamusingnamespacestdconstintMAX10intmain(){doubledonation[MAX]inti0

基础数组问题
#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,就造成数组越界了,改成楼上那样

热点排行