2012-11-14 3 views
0

배열 내에 중복 값이있는 경우 x [floor (0.8 * N) +1]을 초과하는 첫 번째 숫자를 찾아야합니다. 그러나 이것을하는 방법을 모릅니다. x는 오름차순으로 정렬 된 정수의 배열을 나타냅니다. 도움을 많이 주시면 감사하겠습니다.80 번째 백분위 수를 초과하는 값을 찾으십니까?

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

이 논의는 관련이있을 수 : http://stackoverflow.com/questions/6553970/find-the-first-element-in-an-array- 목표보다 큰 것 – Bharat

+0

'values'는 배열의 값의 수입니까? (더 좋을 ...). – WhozCraig

답변

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]; 
관련 문제