|  | 
 
 发表于 2023-12-13 20:00:04
|
显示全部楼层 
| 你的想法是对的,这是一个对输入数组进行冒泡排序的程序。但是,其中有一个错误,交换两个变量的值时,你需要一个中间变量来存储其中一个的值。 
 这是一个修复后的代码:
 
 
 复制代码#include<bits/stdc++.h>
using namespace std;
void pa(int *a, int n){
    int i, j, temp;
    for(i=0;i<n-1;i++){
        for(j=0;j<n-1-i;j++){
            if(a[j]>a[j+1]){
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
    for(i=0; i<n; i++)
        cout << a[i] << ' ';
}
int main(){
    int a[100], n;
    cin >> n;
    for(int i=0; i<n; i++)
        cin >> a[i];
    pa(a, n);
    return 0;
}
 这个程序会:
 
 1. 从用户那里读取一个数n,这个是将要排序的元素个数;
 2. 然后,我们读取n个数(并且这些数我们将排序);
 3. 最后,我们调用pa函数进行冒泡排序,并打印排序后的数组。
 
 
 希望这个对你有所帮助!
 
 求最佳答案
   | 
 |