用c++做一个数组练习时遇到一个问题

代码向导 论文问答 1

我想将1到100之间的偶数存进数组,然后再通过数组将这些偶数输出,但是不知为什么运行结果发生了溢出,可否帮我看看原因? 代码:

#include
using namespace std;
int main()
{
int oushues[50];
int cnt=0;
for(int i=1;i<=100;i++)
{
if(i%2==0)
{
oushues[cnt++]=i;

       cout<<oushues[cnt]<<endl;      
   }      
}
return 0;
}

回复

共2条回复 我来回复
  • 代码驿站
    这个人很懒,什么都没有留下~
    评论

    我说错了,是当 i 为 100 的时候。 oushues[cnt++]=i; ------------------------- cnt 为 49 cout<<oushues[cnt]<<endl; ------------- cnt 为 50 (越界)

    0条评论
  • 源码驿站
    这个人很懒,什么都没有留下~
    评论

    问题出在了 oushues[cnt++]=i;,给数组一个元素赋值后,数组下标增1,而后面的输出就是下一个数组元素了,还没有赋值,当然舍溢出了,解决方法就不用说了吧。

    0条评论

发表回复

登录后才能评论