C语言实现排名算法和排位算法
2018-06-18 03:53:36来源:未知 阅读 ()
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
- 关于各种不同开发语言之间数据加密方法(DES,RSA等)的互通的 2020-06-07
- C语言程序结构 2020-05-31
- C++冒泡排序 (基于函数模板实现) 2020-05-31
- opencv-12-高斯滤波-双边滤波(附C++代码实现) 2020-05-10
- 二叉排序树 2020-05-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash