当数组中有重复值时,我需要找到超过x [floor(0.8 * N)+1]的第一个数字。但我不确定如何做到这一点。 x指的是整数上的数组,它们按升序排序。非常感谢帮助。
void eightypercentile(int x[], values)
{
int eightiethpercentile;
if( x[floor(0.9*N)+1] <= x[floor(0.8*N)])
{
eightiethpercentile = /*first number that exceeds x[floor(0.8*N)+1] */
}
int eightiethpercentile = x[floor(0.8*N)+1];
}
答案 0 :(得分:0)
一种方法:
nc = ceil(N * 0.8)
nf = floor(N * 0.8)
if (nc == nf) nc++;
while (x[nc] == x[nc-1])
nc++;
return x[nc];