| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 269 人关注过本帖
标题:排序问题
取消只看楼主 加入收藏
何人我
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-9-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
排序问题
FUN的功能:把形参a所指数中的最大值放在a[0]中,接着求出a所指数中的最小值放在a[1]中,再把a所指数元素中的次大值放在 a[2]中,把a数组元素中的次小值放在a[3]中,其余以此类推
若a 所指数的数据最初排列:1,4,2,3,9,6,5,8,7.按规格移动后,数据排列:9,1,8,2,7,3,6,4,5。形参n中存放a所指数中的数据的个数
源码以下
#include    <stdio.h>
#define    N    9
/**********found**********/
void fun(int  ___1___, int  n)
{  int  i, j, max, min, px, pn, t;
/**********found**********/
   for (i=0; i<n-1; i+=___2___)
   {  max = min = a[i];
      px = pn = i;
/**********found**********/
      for (j=___3___; j<n; j++)
      {  if (max < a[j])
         {  max = a[j]; px = j;  }
         if (min > a[j])
         {  min = a[j]; pn = j;  }
      }
      if (px != i)
      {  t = a[i]; a[i] = max; a[px] = t;
         if (pn == i) pn= px;
      }
      if (pn != i+1)
      {   t = a[i+1]; a[i+1] = min; a[pn] = t; }
   }
}
main()
{  int  b[N]={1,4,2,3,9,6,5,8,7}, i;
   printf("\nThe original data  :\n");
   for (i=0; i<N; i++)  printf("%4d ", b[i]);
   printf("\n");
   fun(b, N);
   printf("\nThe data after moving  :\n");
   for (i=0; i<N; i++)  printf("%4d ", b[i]);
   printf("\n");
}
谁知道怎么做
2009-09-15 19:30
何人我
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-9-15
收藏
得分:0 
谢谢你
2009-09-15 21:58
快速回复:排序问题
数据加载中...
 
   



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

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