C语言 编程序 用选择法对10个数按从小到大的顺序排列。

 我来答
vwenye
推荐于2016-12-02 · TA获得超过4984个赞
知道大有可为答主
回答量:1510
采纳率:0%
帮助的人:792万
展开全部
int arr[10];

void sort()
{
for(int i=0;i<10;i++)
{
for(int j=i;j++;j<10)
{
if(arr[j]<arr[i])
{
int tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
}

void main()
{
int i;
for( i=0;i<10;i++)
scanf("%d", arr[i]);
int j;
for(j=0;j<10;j++)printf("%d ", arr[j])
sort();
for(int i=0;i<10;i++)printf("%d ", arr[j]);
}
更多追问追答
追问
能讲一下选择法吗
追答
选择法啊,就是选出最大(或者最小)的那个,放第一个,然后剩下的继续选出最大(或者最小)的那个,放第一个
就叫选择法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西北望射天狼0
2011-06-07 · TA获得超过172个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:87万
展开全部
#include<stdio.h>
void main()
{
void sort(int x[],int n);
int*p,i,a[10];
p=a;
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;
sort(p,10);
for(p=a,i=0;i<10;i++)
{printf("%d ",*p);p++;}
}
void sort(int x[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k])k=j;
if(k!=i)
{t=x[i];x[i]=x[k];x[k]=t;}
}
}
}
追问
冒泡与选择法有啥区别
追答
起泡法是,一个一个的比较,如果你要求从大到小输出,那么一个一个比较时就把小的往上冒,当一圈循环结束后,冒到最上面的一个数就不再参加循环。以此类推,一至到最大的数沉到最底。
而选择法是,在你输入的数中随机选择一个数,把这个数和基它每一个数进行比较,当找到一个比它小的就把小的冒到上面当找到一个比它大的数就沉下去。然后再把上面比较出来的较小的取出来再和其它数比较。再以此类推。。。就可以达到和起泡法一样的功能。。
希望能够看懂,也希望采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xushiladeng
2011-06-07 · TA获得超过101个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:101万
展开全部
不知道楼主是否说的是c语言的冒泡排序发呢?
追问
是的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式