欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-23 16:01:40
#include "stdio.h" 2 int search_second_max(int array[], int n,int m) 3 { 4 in...
#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

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

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

请按任意键继续. . .

上一篇:

下一篇: