| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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; 
    } 
} 
 
 
 |   
 
 
 
 |