Il programma che sto cercando di scrivere, simula una gara di salti tra rane su di una scala, le rane hanno una probabilità del 50% di saltare due scalini in avanti, o di scendere di uno.
il problema è che mi da risultati assurdi, se c'è qualcuno che puo perderci 10 minuti mi farebbe davvero un gran favore, dato che non riesco a capire dove ho sbagliato.Grazie a tutti






#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int salto(int);


main(){

int N_RANE, N_SCALINI,i,rana[N_RANE],salti,k,seed,val,a,jump;



printf("\n Simuliamo un'avvincente gara di salti fra rane! \n");




do{
printf("\n Inserisci il numero di rane che gareggeranno \n");
scanf("%d", &N_RANE);
if(N_RANE>100){
printf("\n Inserisci un minor numero di rane \n");
scanf("%d", &N_RANE);
}
}
while(N_RANE>100);

do{
printf("\n Inserisci il numero di scalini da saltare \n");
scanf("%d", &N_SCALINI);
if(N_SCALINI>50){
printf("\n Inserisci un minor numero di scalini \n");
scanf("%d", &N_SCALINI);
}
}
while(N_SCALINI>50);

for(i=0; i<N_RANE; i++ ){
rana[i]=i+1;
jump=salto(k);

printf("\n La rana[%d] ha terminato la gara con %d salti \n", rana[i], jump);



};



}



int salto(int k){
int N_SCALINI,val,seed,salti,a;

seed=time(0);
srand48(seed);

do{
val=lrand48()%10 +1;
if(val>5){a=2;}
else{a=-1;}
k=k+a;
if(k>N_SCALINI){k=k-2;};
if(k<0){k=0;};
salti++;
}
while(k =! N_SCALINI);
return salti;
}