c语言在所指向的整数数组中查找第k个最大元素全部数组的值是非负的?

在给定的源代码中完成get _ kth _ largest ( )
int get _ kth _ largest ( int * nums , int k ):在所指向的整数数组中查找第k个最大元素全部数组的值是非负的,最后一个(结束标记:-1)表示数组的结束
参数
num:指向要搜索的结束标记(1)结束的整数数组的指针。
k:我们要找到的顺序
返回值
返回第k个最大元素的值
如果k小于1或大于数组中的元素数,则返回-1
可以添加新函数和变量
#include <stdio.h>
#include <stdlib.h>

#define END_MARK -1
#define MAX_SIZE 10000

int get_kth_largest(int *nums, int k) {
\\补全
return -1;
}

#include <stdlib.h>
#include <stdio.h>

void paixu(int *nums,int len)
{
int i = 0;
int j = 0;
int temp;
for(i=0;i<len-1;i++)
{
for(j=0;j<len-i-1; j++)
{
if(nums[j]<nums[j+1])
{
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}

}

/////////////////////////////////////////////////////////
int get_kth_largest(int *nums, int k) {
int i=0;
int j = 0;
int *p = nums;
if (k>=1)
{
while(p != NULL && *p != -1)
{
p++;
i++;

  }
if (k>i)
{
return -1;
}
else
{
paixu(nums,i);
return nums[k-1];
}
}

 return -1;

//////////////////////////////////

//测试
int main()
{
int mm[]={2,3,4,1,8,6,7,5,9,-1};
int n = 0;
scanf("%d", &n);

   printf("第%d大的数是%d", n,get_kth_largest(mm,n));
getchar();
return 0;
}


结果如下: int mm[]={2,3,4,1,8,6,7,5,9,-1};

温馨提示:答案为网友推荐,仅供参考