| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 14774 人关注过本帖
标题:编写一个C程序,实现对 n 个数的数列从小到大排序。
只看楼主 加入收藏
JollyRoger
Rank: 2
等 级:论坛游民
帖 子:14
专家分:32
注 册:2012-5-28
收藏
得分:0 
回复 19楼 love24114
学C的人都知道教材里大把排序的例子,例如起泡法,google一搜就可以了,难道非要发个帖子,让别人给码一遍C最常见的排序代码?
2012-06-07 20:59
wangyunzhong
Rank: 2
等 级:论坛游民
帖 子:16
专家分:13
注 册:2012-6-6
收藏
得分:0 
呵呵   这里是大家交流的论坛   就是把大家会的拿出来分享   不要这样激励人啊
冒泡排序挺经典的,但绝不是最好的
学了数据结构你就会知道的
2012-06-08 00:54
o010o
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-8
收藏
得分:0 
在我第一次拿到这个题目的时候,我只会用一个for语句,我调试了很久,结果就是不尽如人意。后来我才知道要用连个for语句才能做到排序的目的。我会的第一个办法就是冒泡法。就是控制第一个for语句的变量,因为他总是要在第二个for语句循环完一圈后在改变,所以就可以把第一个元素拿来和后面的相比较一次,然后把小的或者打得放在前面,依次循环,结果就出来了。以下是我写的,没有用到函数的传递,当然可以改成函数传递的,有什么不足之处请一定要指出来。之后我还学到了其他方法也一并分享一下。
#include<stdio.h>
main()
{
    double a[100] , m ; // 定义了数组和数组的类型
    int i ,j , n  ; // 定义了循环控制变量和要输入的数组的长度
    printf("请输入数组的长度:"); // 提示用户输入数组的长度
    scanf("%d",n);
    printf("请输入数组的元素:");
    for(i=0;i<n;i++)
       {
           scanf("%d",m);
           a[i]=m;
        }
    printf("排序前:");
    for(i=0;i<n;i++)//输出每个元素
       {
           scanf("%d",a[i]);
        }
    a[i]='\0'; // 给数组的尾部人工放置字符结束符
    for(i=0;i<n-1;i++)//使用冒泡法排序
       {
           for(j=1;j<n;j++)
              {
                  if(a[i]>a[j])
                     {
                         m=a[i];
                         a[i]=a[j];
                         a[j]=m;
                      }
               }
        }
    printf("排序后:");
    for(i=0;i<n;i++)//输出每个元素
       {
           scanf("%d",a[i]);
        }
   
}


冒泡排序法:
void sort(int a[] ,int n )

{
 int i , j , k ;
 for(i+1;i<n;i++)
    for(j=0;j<n-i;j++)
       {
        if(a[j]>a[j+1])
           {
            k=a[j];
            a[j]=a[j+1];
            a[j+1]=k;
            }
        }
}




选择排序法:
void sort(int a[], int n)
{
int i ,j k, t;
for(i=0;i<n-1;i++)
 {
  k=i;
  for(j=i+1;j<n;j++)
   if(a[k]<a[j])  k=j;
  if(k!=i)
    {
      t=a[i];
      a[i]=a[k];
      a[k]=t;
     }
 }
}
2012-06-09 13:16
快速回复:编写一个C程序,实现对 n 个数的数列从小到大排序。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020703 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved