Files
2025-09-12 18:55:25 +09:00

21 lines
315 B
C

void locate(float xx[], unsigned long n, float x, unsigned long *j)
{
unsigned long ju,jm,jl;
int ascnd;
jl=0;
ju=n+1;
ascnd=(xx[n] >= xx[1]);
while (ju-jl > 1) {
jm=(ju+jl) >> 1;
if (x >= xx[jm] == ascnd)
jl=jm;
else
ju=jm;
}
if (x == xx[1]) *j=1;
else if(x == xx[n]) *j=n-1;
else *j=jl;
}