|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main()
{
int arr[10]={4,85,3,234,45,345,345,122,30,12};
for(int i=0;i<10;i++)
{
for(int j=0;j<10-i-1;j++)
{
if(arr[j]>arr[j+1])
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
cout<<arr[i]<<endl;
}
}
冒泡排序算法的实现基本正确,但是在输出排序结果时存在一个问题。在内层循环中,每次比较并交换元素后,最大的元素会被移动到数组的末尾。然而,你在每次外层循环结束后,使用cout语句输出的是当前位置的元素,而不是排序后的结果。
要正确输出排序结果,你需要将cout语句移动到外层循环的结束位置,即将cout<<arr[ i]<<endl;移动到外层循环的大括号"}"之后。
修改后的代码如下:
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main()
{
int arr[10]={4,85,3,234,45,345,345,122,30,12};
for(int i=0;i<10;i++)
{
for(int j=0;j<10-i-1;j++)
{
if(arr[j]>arr[j+1])
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(int i=0;i<10;i++)
{
cout<<arr[ i]<<endl;
}
}
|
|