C++程序:输入n个数,将这些数从大到小排列输出

2025-03-07 03:35:59
推荐回答(5个)
回答1:

#include
#include
using namespace std;
int main()
{
    //指定数组长度
    int n;
    cin>>n;
    //动态分配内存
    int* p=new int[n];
    //顺序输入
    for(int i=0;i        cin>>p[i]; 
    //冒泡排序
    int t=0;
    for(int i=1;i        for(int j=0;j        {
            if(p[j]                {
                    t=p[j];p[j]=p[j+1];p[j+1]=t;
                }
        }
     //顺序输出
    for(int i=0;i        cout<    return 0;
}

回答2:

#define SIZE sizeof(aa)/sizeof(int)
void fun(int *a, int n)
{
int i, j, k, t, m, s = 0;
for (i = 0; i < n; i++)
{
k = i;
//比较极数(最大小),记住i,交换
for (j = i + 1; j < n; j++)
{
if (a[j] > a[k]) k = j;
}
if (k != i)
{
t = a[i]; a[i] = a[k]; a[k] = t;//交换


}

}


}


void main()
{
int aa[] = { 45, 56, 76, 234, 1, 34, 23, 2, 3 }, i;
fun(aa, 9);
for (i = 0; i < SIZE; i++)
cout<< aa[i]<<" ";
cout << endl;;
}

回答3:

#include
using namespace std;
int main()
{
int a[1000];
int n;
cin>>n;
for(int i=0;i {
cin>>a[i];
}
for(int i=0;i {
for(int j=0;j {
if(a[j] swap(a[j],a[j+1]);
}
}
for(int i=0;i {
cout< }
return 0;
}

回答4:

#include
using namespace std;
int i,j,n,a[1001];
int main()
{
cin>>n;
for(i=1;i<=n;i++)cin>>a[i];
for(i=2;i<=n;i++)
for(j=i-1;j>=1;j--)
if(a[j+1]>a[j])swap(a[j+1],a[j]);
for(i=1;i<=n;i++)cout<return 0;
}

回答5:

#include
using namespace std;
int main()
{ int n,t=0;
cout << "请输入n的值:" << endl;
cin >> n;
int *p=new int [n];
cout << "请输入n个整数:" << endl;
for(int i=0;icin >> p[i];
for(int j=0;jfor(int i=0;i{
if(p[i]{
t=p[i];
p[i]=p[i+1];
p[i+1]=t;
}
}
cout << "输出按从大到小的顺序重新存放后的结果:" << endl;
for(int i=0;icout << p[i] << ' ';
}