题目描述:编写一个函数getMaxK(intarr[],intn,intk,int*km),该函数用于找出数组
arr中元素的第k大的值,并将值存于km所指的变量中。在main函数中,输入n个整数
和k,调用函数getMaxK,输出n个整数序列中第k大的值。
如图所示
C语言找出数组arr中元素的第k大的值
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- CSDN专家-link 2022-11-08 22:48关注
第k大,用选择排序的第k趟排序得到的最大值就是
#include <stdio.h> void getMaxK(int *a,int n,int k,int *km) { int i,j,m,t; for(i=0;i<n-1;i++) { m = i; for(j=i+1;j<n;j++) { if(a[j]>a[m]) m = j; } if(m!=i) { if(k==i+1) { *km = a[m]; break; } else { t = a[m]; a[m] = a[i]; a[i] = t; } } } } int main(){ int i,j,n,k,a[100],km=0; scanf("%d%d",&n,&k); for(i=0;i<n;i++) scanf("%d",&a[i]); getMaxK(a,n,k,&km); printf("%d",km); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 matlab中使用gurobi时报错
- ¥15 WPF 大屏看板表格背景图片设置
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂