c语言请教~

voidmain(){inti,j,p,q,s,a[10];printf("\ninput10numbers:\n");for(i=0;i<10;i++)scanf("%... void main()
{
int i,j,p,q,s,a[10];
printf("\n input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++){
p=i;q=a[i];
for(j=i+1;j<10;j++)
if(q<a[j]) { p=j;q=a[j]; }
if(i!=p)
{s=a[i];
a[i]=a[p];
a[p]=s; }
printf("%d",a[i]);
}
}
看不明白...
展开
 我来答
know8or8know
2007-09-04 · 超过12用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:34.9万
展开全部
这个是用选择法进行对输入10个数的排序。你可以参考以下程序。
#include<stdio.h>
void main()
{int i,j,temp,min,a[10];
printf("Please enter the data:\n");
for(i=0;i<10;i++)
{printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf("\n");
printf("The orginal data is:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
for(i=0;i<9;i++) /*首先数字从第一个开始比较a[0]*/
{min=i; /*把i的值赋给min,用其保存*/
for(j=i+1;j<10;j++)
{if(a[min]>a[j])min=j; /*第一个值与其后各值比较,把小值均赋给min*/
temp=a[min]; /*然后交换a[min]与a[i]的值,此时排序已完成*/
a[min]=a[i];
a[i]=temp;}}
printf("\nNow the sorted data is:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]); /*输出a[i]的值*/
}
仔细理解一下,会看懂的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友803e7a97f
2007-09-05 · 超过33用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:0
展开全部
排序算法中的选择排序,,仔细看一下吧, 数据结构里面有

建议弄懂其 算法的思想,

扫描数组,选择最大,或最小的数依次从a[0]排到a[i]
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一变班爱麻啊堡0J
高粉答主

2020-01-13 · 醉心答题,欢迎关注
知道答主
回答量:11.4万
采纳率:2%
帮助的人:5507万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清正还清雅丶小雀6707
2007-09-04
知道答主
回答量:26
采纳率:0%
帮助的人:0
展开全部
这是把数组里的数从大到小排列的.这个程序写的不好.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WXD110114dccd8
2007-09-04 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.6万
采纳率:43%
帮助的人:7692万
展开全部
这是个选择排序程序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式