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

C++编程:将10个整数按从小到大的顺序排列要求:形参为指针变量... C++编程:将10个整数按从小到大的顺序排列
要求:形参为指针变量
展开
 我来答
lgao622
推荐于2017-09-20 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6550
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部

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

#include <iostream>
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;
}

hardy聊一聊
推荐于2017-09-11 · TA获得超过764个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:192万
展开全部
#include "stdafx.h"
#include <iostream>
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<<a[j]<<" ";
}
cout<<a[j];
}
void main()
{
int a[10]={0},i;
for(i=0;i<10;i++)
{
cout<<"请输入第"<<i+1<<"个数"<<endl;
cin>>a[i];
}
cout<<"输入完毕"<<endl<<"改变后结果为";
k(a);
}
楼主,我已经测试过了,你直接复制生成就可以了……
程序有中文引导,我保证你绝对可以看懂,也会用,给分吧……
这个程序的缺点是一定要输入10个数,本来我想改成你输入几个数都可以的程序,但是怕是你的作业,所以就把它限定了……
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JimiXu
2010-05-12 · TA获得超过410个赞
知道小有建树答主
回答量:1010
采纳率:0%
帮助的人:0
展开全部
我想到的是,新建一个同样长度的空数组,然后从输入数组首位扫描到末位,扫描比当前数小的数字个数,如果是0,就将新数组下标0位赋值为这个数。
计数大小恰巧是下标数目。
这个算法应该比2L的快速,但是有个bug:两个数字大小相等的时候就会有问题。如果用可以支持插入的列表结构就没这个问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JeyonyMQ
2018-08-02
知道答主
回答量:20
采纳率:0%
帮助的人:1.6万
展开全部
#include<bits/stdc++.h>
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<<a[i]<<" ";
cout<<endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hurryooooo
2010-05-12 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6972
采纳率:83%
帮助的人:4366万
展开全部
#include <iostream>
using namespace std;
int main()
{ void select_sort(int *p,int n);
int a[10],i;
cout<<"enter the originl array:"<<endl;
for(i=0;i<10;i++)
cin>>a[i];
cout<<endl;
select_sort(a,10);
cout<<"the sorted array:"<<endl;
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
void select_sort(int *p,int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(*(p+j)<*(p+k)) k=j;
t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;
}
}

参考资料: 已通过编译测试

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式