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

2018-01-31 12:42:13来源:cnblogs.com作者:书生侠客人点击

分享
  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
请按任意键继续. . .

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台