c语言 若对任意n个数进行排序,应该如何操作?

请写下注释 新手 理解不是很好 而且可能有些东西认不到,老师也不讲...希望讲解

/*选择排序法:从小到大排列10个数并输出*/
#include<stdio.h>
#define N 10       //可修改输入个数
void main()
{
    int i,a[N],t,j;
    for(i=0;i<N;i++) scanf("%d",&a[i]);   //输入
    for(j=1;j<N;j++)           //N次比较
        for(i=0;i<j;i++)         //每趟中比j次  
            if(a[i]>a[j])            //与a[i]后面的元素进行比较
            {
                t=a[i];a[i]=a[j];a[j]=t;
            }
            printf("排序后:\n");
            for(i=0;i<N;i++) printf("%d ",a[i]);
            printf("\n");
}


温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-10
首先定义一个可以放十个数的一位数组,
定义三个变量i,j,t。
for后跟循环条件。这个是双循环,进行比较
最后将这十个数安排好的顺序输出,献丑了。
第2个回答  2013-11-10
//选择排序法
int a[10]={5,65,84,6,3,78,47,89,9,1};
int i,j,t;
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<10;i++)
{
printf("%d\t",a[i]);
}本回答被提问者和网友采纳
第3个回答  2013-11-10
排序的算法非常多啊,建议你找一个数据结构与算法的书看看吧,都是基本知识

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网