为什么结果不对,结果为什么是01234,0在哪里来的


 int a[5];
    a[0]=1;
    a[1]=3;
    a[2]=5;
    a[3]=4;
    a[4]=2;
        for(int i = 0;i < 5;i++) {
            for(int j = 0;j < 5-i;j++) {
                if(a[j]>a[j+1])
                {
                    int temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
            cout<[i]<[i];
        }

img

越界了,i=0时,j=4,if内a[4]>a[5]?

i是0时,j<5,j+1=5,越界了

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^