Szukanie k-tej najczęstszej wartości w kodzie c++

nie potrafię sobię poradzić w znalezieniu k-tej najczęstszej wartości w tablicy k mają być losowe w danym przedziale np.1-9
#include
#include
#include
#include <time.h>

using namespace std;

int main( )
{
const int N = 400;
int Z [ N ], i, j, L, W, maxL, maxW;
srand ( ( unsigned )time ( NULL ) );
for( i = 0; i < N; i++ ) Z [ i ] = rand( ) % 100;
maxL = 0; maxW = Z [ 0 ] - 1;
for( i = 0; i < N - maxL; i++ )
{
W = Z [ i ];
if( maxW != W )
{
L = 1;
for( j = i + 1; j < N; j++ ) if( Z [ j ] == W ) L++;
if( L > maxL )
{
maxL = L; maxW = W;
}
}
}
for( i = 0; i < N; i++ )
if( Z [ i ] == maxW ) cout << " >" << setw ( 2 ) << Z [ i ];
else cout << setw ( 4 ) << Z [ i ];
cout << endl << maxW << ": " << maxL << endl << endl;
return 0;
}