给定n个整数,求其中第m大的数 c语言编程实现
时间: 2023-06-03 17:01:37 浏览: 101
好的,关于您的问题,我可以为您提供以下的 C 语言代码,其可以求出给定 n 个整数中的第 m 大数:
```
#include <stdio.h>
// 快排
void quicksort(int a[], int l, int r) {
if (l >= r) return;
int i = l, j = r, p = a[l];
while (i < j) {
while (i < j && a[j] <= p) j--;
a[i] = a[j];
while (i < j && a[i] >= p) i++;
a[j] = a[i];
}
a[i] = p;
quicksort(a, l, i-1);
quicksort(a, i+1, r);
}
// 取第 m 大数
int find_mth(int a[], int n, int m) {
quicksort(a, 0, n-1);
return a[n-m];
}
int main() {
int a[] = {3, 1, 5, 7, 2, 4};
int n = sizeof(a) / sizeof(a[0]);
int m = 2; // 求第 2 大数
printf("第 %d 大数为:%d\n", m, find_mth(a, n, m));
return 0;
}
```
当然,这只是一个简单的示例,实现中需要注意异常输入的处理,比如 m 大于 n 的情况,可以自行更改程序。希望对您有所帮助。