找到超过80%的值?

时间:2012-11-14 23:57:17

标签: c arrays algorithm

当数组中有重复值时,我需要找到超过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];

}

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];