0

配列内に重複する値がある場合、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];

}
4

1 に答える 1

0

1 つの方法:

nc = ceil(N * 0.8)
nf = floor(N * 0.8)
if (nc == nf) nc++;
while (x[nc] == x[nc-1]) 
  nc++;
return x[nc];
于 2012-11-15T00:19:15.683 に答える