排序最后为什么8和9的顺序不对呢


#include<iostream>
using namespace std;
int main()
{
    int arr[9] = { 1,5,6,7,2,3,9,4,8 };
    for (int i = 0; i < 8; i++)
    {
        for (int j = 8 - i; j > 0; j--)
        {
            if (arr[j] < arr[j - 1])
            {
                int temp = arr[j - 1];
                arr[j - 1] = arr[j];
                arr[j] = temp;
            }
        }
    }
    for (int i = 0; i < 9; i++)
    {
        cout << arr[i];
    }
    return 0;
}

img

你的数组元素是9个,但第一个for循环只有0到7(只遍历到8个元素),这里应该是0到8才对吧,你看一下

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

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