C语言实现排名算法和排位算法

2018-06-18 03:53:36来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

  1 #include "stdio.h"
  2 int search_second_max(int array[], int n,int m)
  3  {
  4      int max1;
  5      int i,num;
  6      num=1;//默认第一名 
  7      if(m>n) return 0; 
  8      max1 = array[m];
  9      for (i = 0; i < n; i++)
 10      {
 11          if (array[i]>max1)
 12          {
 13              num++;      
 14          }
 15 
 16      }
 17      return num;
 18 }
 19 
 20 
 21 void sort(int *a, int l)//a为数组地址,l为数组长度。
 22 {
 23     int i, j;
 24     int v;
 25     //排序主体
 26     for(i = 0; i < l - 1; i ++)
 27         for(j = i+1; j < l; j ++)
 28         {
 29             if(a[i] > a[j])//如前面的比后面的大,则交换。
 30             {
 31                 v = a[i];
 32                 a[i] = a[j];
 33                 a[j] = v;
 34             }
 35         }
 36 }
 37 
 38 //排名 
 39 void  PaiMing(int *a, int *b,int *c,int N)
 40 {
 41     int i, j;
 42     int v;
 43     int arrayindex[8][2];
 44     
 45     for(i=0;i<8;i++)
 46     {
 47        arrayindex[i][0]=a[i];
 48        arrayindex[i][1]=i;
 49     }
 50     //排序主体从小到大 
 51     for(i = 0; i < N - 1; i ++)
 52         for(j = i+1; j < N; j ++)
 53         {
 54             if(arrayindex[i][0] > arrayindex[j][0])//如前面的比后面的大,则交换。
 55             {
 56                 v = arrayindex[i][0];
 57                 arrayindex[i][0] = arrayindex[j][0];
 58                 arrayindex[j][0] = v;
 59                 
 60                 v = arrayindex[i][1];
 61                 arrayindex[i][1] = arrayindex[j][1];
 62                 arrayindex[j][1] = v;
 63                 
 64             }
 65         }    
 66         
 67        //排名次 
 68        for(i=0,j=1;i<N-1;i++)
 69        {
 70              
 71                if(arrayindex[i][0]!=arrayindex[i+1][0])
 72           {
 73                b[i]=j;
 74                j++;
 75                b[i+1]=j;
 76           }else
 77           {
 78                b[i]=j;
 79                b[i+1]=j;
 80           }
 81        } 
 82        
 83        for(i=0;i<N;i++)
 84        {
 85              a[i]=arrayindex[i][0];
 86              c[i]=arrayindex[i][1];
 87        }
 88     
 89 }
 90 
 91  
 92 int main(void)
 93 {
 94    int a[8]={7,2,6,3,3,7,1,8};    
 95    int num;
 96    int i;
 97    int b[8];
 98    int c[8]; 
 99 
100    printf("---------------------------------------\n");
101    
102    PaiMing(a,b,c,8); 
103    for(i=0;i<8;i++)
104    {
105         printf("a[%d]=%d b[%d]=%d c[%d]=%d \n",i,a[i],i,b[i],i,c[i]);
106    } 
107    printf("\n");
108    printf("----------------------------------------\n");
109         
110 
111 
112    
113 }

结果输出

---------------------------------------
a[0]=1 b[0]=1 c[0]=6
a[1]=2 b[1]=2 c[1]=1
a[2]=3 b[2]=3 c[2]=4
a[3]=3 b[3]=3 c[3]=3
a[4]=6 b[4]=4 c[4]=2
a[5]=7 b[5]=5 c[5]=5
a[6]=7 b[6]=5 c[6]=0
a[7]=8 b[7]=6 c[7]=7

----------------------------------------

--------------------------------
Process exited after 0.8098 seconds with return value 0
请按任意键继续. . .

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:c++(002)学习输入cin

下一篇:stm32f10x单片机进阶--spi使用