这到底哪里错了qwq

img

初学c++ 这冒泡排序我想破脑袋都想不出来该怎么改😭到底哪里错了??

内部循环 j = 0 改成j = i ,不从0开始, 还有 你这个题库怎么看着像东软的。。。

晕,数组值还没有输入呢,你排啥序啊?你得先循环输入数组每个元素,然后再排序。

要数组里面的元素都输入完了才能比较,还有认真看题目啊:从大到小、输出换行。


#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[25];
    for(int i=0; i<n;i++){
        cin>>a[i];
    }
    for(int i=0; i<n; i++){
        for(int j=0; j<n-i-1; j++){
            if(a[j] < a[j+1]){
                int t = a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
    }
    for(int i=0; i<n; i++){
        cout<<a[i]<<endl;
    }
}

好好学编程,未来就是你的。。。
首先,你想要for 循环里面输入数,然后进入for 循环排序,想法不错,那你要在第二个for ( j<i),注意,你要 j < i;但是,你这样就是不是冒泡了
你可以去查一下冒泡 ,要先确定一个数组,然后,对数组里面的数进行冒泡排序;
把你最后的哪个for 循环该一下,让最前面,cout 改成cin;