MI sono imbattuto in questo esercizio da volgere in linguaggio C, è da ore che ci ragiono ma non ne vengo a capo qualcuno mi può aiutare? Grazie in anticipo

Dato un vettore v di n (>0) interi distinti, definire una funzione ricorsiva rango che dato il vettore, un numero positivo r (1 <= r <= n), restituisce l'elemento di rango r di v, senza ordinare gli elementi.

Un elemento k ha rango r in v se v contiene r elementi minori o uguali a k.

Il prototipo della funzione è:
int rango(int v[], int r, int inf, int sup)

Esempio:
Sia v = [10, -3, -9, 7, -2, 15, -14, 3] e r = 5 allora la chiamata di rango(v, 5, 0, 7) restituirà 3.