昨天在练习C++的时候遇到一个这样的问题(如图)
本人给出的代码如下
#include <iostream>
#include <cstdlib>
int main()
{
int data[100];
int pair[50];
for(int i=0; i<100; i++)
{
data[i]= rand()%15;
}
for (int j=0;j<50; j++)
{
pair[j]=data[2*j]+data[2*j+1];
cout<< "pair["<<j<<"]="<<pair[j]<<endl;
}
return 0;
}
但在运行后得到的输出却异常奇怪的残缺不全(如图)
经过多次试验,每次输出到pair[47]就会不再继续输出pair[48] 反而是24 25 26 27 28。
暂时没有找出代码中存在的bug,且对此异常的结果暂无思路。
也尝试过试用其他电脑/编译器,还是有少数会出现同样的问题;也尝试过重装Codeblocks或者重启电脑,当再次第一次运行该代码的时候会得到正确输出,然后clean&rebuild后依然出现同样的问题。
注:CodeBlocks使用的版本是20.03mingw,compiler选的是GNU GCC(Codeblocks默认)。