在C ++中使用冒泡排序时出现意外值

时间:2018-09-25 19:46:18

标签: c++ arrays sorting bubble-sort

使用冒泡排序方法将数组从最小到最大排序时,其输出的意外值是:-858993460。

在调试器中,系统提示我“变量'numb周围的堆栈已损坏”。

我目前正在使用Visual Studio运行代码。

我还在新项目中运行了相同的代码,但没有结果。

#include <iostream>


int main()
{
    int length = 6;   
    int temp = 0;     
    int end = 6;
    int numb[] = { 6, 5, 4, 3, 2, 1 };

    for (int counter = length - 1; counter > 0; counter--)
    {
        for (int i = 0; i < end; i++)
        {
            if (numb[i] > numb[i + 1])
            {
                temp = numb[i + 1];
                numb[i + 1] = numb[i];
                numb[i] = temp;
            }
        }
        for (int i = 0; i <= 5; i++)
        {
            std::cout << numb[i] << " ";
        }

        std::cout << "\n";
        end--;
    }

    system("pause");
}

1 个答案:

答案 0 :(得分:0)

for的内部int i = 0; i < end; i++循环中,您需要将条件设置为i < end - 1。这是因为在交换索引时,您已经i + 1位于数组的末尾。