C++编程:将10个整数按从小到大的顺序排列

2024-11-30 12:32:25
推荐回答(5个)
回答1:

可将10个数放入数组,用冒泡排序将其按升序进行排序。

#include 
using namespace std;

// 冒泡排序长度为len的数组dat(升序)
void sort(int *dat, int len)
{
    int tem;
    for (int i = 0; i < len; i++)
    {
        for (int j = 0; j < len - i - 1; j++) // 比较一次后,则可少比较一个
            if (dat[j] > dat[j+1])  // 大数在前面,则交换
            {
                tem = dat[j];
                dat[j] = dat[j+1];
                dat[j+1] = tem;
            }
    }
}

void output(int *dat, int len) // 输出数据
{
    for (int i = 0; i < len; i++)
        cout << ' ' << dat[i];
    cout << endl;
}

int main()
{
    int a[] = {9, 8, 3, 5, 7, 1, 6, 4, 0, 2};
    sort(a, 10);
    output(a, 10);
    return 0;
}

回答2:

#include "stdafx.h"
#include
using namespace std;
void k(int *a)
{
int j,i,t;
for(j=0;j<9;j++)
{
for(i=j+1;i<10;i++)
if(a[j]>a[i])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
cout< }
cout<}
void main()
{
int a[10]={0},i;
for(i=0;i<10;i++)
{
cout<<"请输入第"< cin>>a[i];
}
cout<<"输入完毕"< k(a);
}
楼主,我已经测试过了,你直接复制生成就可以了……
程序有中文引导,我保证你绝对可以看懂,也会用,给分吧……
这个程序的缺点是一定要输入10个数,本来我想改成你输入几个数都可以的程序,但是怕是你的作业,所以就把它限定了……

回答3:

我想到的是,新建一个同样长度的空数组,然后从输入数组首位扫描到末位,扫描比当前数小的数字个数,如果是0,就将新数组下标0位赋值为这个数。
计数大小恰巧是下标数目。
这个算法应该比2L的快速,但是有个bug:两个数字大小相等的时候就会有问题。如果用可以支持插入的列表结构就没这个问题。

回答4:

#include
using namespace std;
int main()
{
int a[11],i;
for(i=1; i<=10; ++i)
cin>>a[i];
sort(a+1,a+11);
for(i=1; i<=10; ++i)
cout<cout<return 0;
}

回答5:

#include
using namespace std;
int main()
{ void select_sort(int *p,int n);
int a[10],i;
cout<<"enter the originl array:"< for(i=0;i<10;i++)
cin>>a[i];
cout< select_sort(a,10);
cout<<"the sorted array:"< for(i=0;i<10;i++)
cout< cout< return 0;
}
void select_sort(int *p,int n)
{int i,j,k,t;
for(i=0;i {k=i;
for(j=i+1;j if(*(p+j)<*(p+k)) k=j;
t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;
}
}