在b站学习C++,按照教程的代码敲了一冒泡排序。
结果却跟教程的不一样,我发现最后一位数字无法交换
使用的软件是VS2019
该图为运行结果图
代码如下:
#include <iostream>
using namespace std;
int main() {
int arr[9] = {4,2,9,0,5,7,1,3,8};
cout << "冒泡排序前" << endl;
for (int i = 0; i < 9; i++)
{
cout << arr[i] << " ";
}
cout << endl;
int len = sizeof(arr) / sizeof(arr[0]);
//开始冒泡排序
//总共排序的排序轮数为 元素个数-1
for (int i = 0; i < len -1 ; i++)
{
//内存循环对比
//次数= 元素个数-当前轮数- 1
for (int j = 0; j < len - i -1 ; j++)
{
//如果第一个数字比第二个数字大,就交换两个数字
if (arr[j]>arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + i ] = temp;
}
}
}
//排序后结果
cout << "冒泡排序后" << endl;
for (int i = 0; i < len; i++)
{
cout << arr[i] << " ";
}
cout << endl;
system("pause");
return 0;
}