cin>>x;
a[x]+=1;
此句有问题
输入31232221中数组为a【31232221】,很明显数组下标越界。导致访问的数字是系统数据流的其他数据
#include
using namespace std;
int main()
{
int a[4],x,i; //定义长度为4的数组a ,整形 x ,i ;
for(i=1;i<=3;i++) a[i]=0;// i循环一下, 1-3 数组元素全部为0
cin>>x; //输入X
while(x!=-1) // 当输入不为-1时
{
a[x]+=1; // a[x]=a[x]+1
cin>>x; //输入X,这里要求你再次输入,输入数字之后在进行WHILE循环
}
for(i=1;i<=3;i++) //循环输出
cout<<"a["< return 0;
}
按你输入的数字往下推
a[3]=1
a[1]=1
a[2]=1
a[3]=2
a[2]=2
a[2]=3
a[2]=4
a[1]=2
a[1]=3
a[3]=3
..
..
..
..
1,2,3 没输入一次 a[1]a[2]a[3]加1 一直到 输入-1为止
仔细揣摩一下吧 呵呵。
额 没想到回答了这么长时间。 楼上都有两位答复了。机器上没装VS ,是否正确我就不验证了哈。 程序是这么读的。 结果也是我预测的。 不知道楼主得到的答复是否如此呢。。