Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi Gente,
Estou com um problema quando tento gerar um vetor de números aleatórios.
Tenho uma matriz(Ma), que corresponde as posições de corredores.
As posições mudam a cada volta(vetor aleatório).
Não consigo gera-lo
Desde já agradeço a ajuda :)
int atualiza_posicao(int i, int j){
int cont_linha=0, x=0;
srand(time(NULL));
x = (rand()%j)+1;
for(int l=0; l<j; l++){
if(Ma[l] == x){
x = (rand()%5)+1;
l=0;
}
}
cout << x ;
return x;
} for(int i=0; i<voltas; i++){
for(int j=0; j<n; j++){
if(i == 0){
Ma[j] = largada[j];
}else{
Ma[j] = atualiza_posicao(i, j);
}
}
}
}Programa que simula uma corrida de 5 voltas com 10 corredores:
#define NUM_CORREDORES 10
#define NUM_VOLTAS 5
int pista[NUM_CORREDORES];
int main(){
int i,j,k,temp;
printf("Pre-largada\n");
for(i=0; i<NUM_CORREDORES; i++)
printf("\nCorredor %d: 1",i+1);
k=0;
for(i=0; i<NUM_CORREDORES; i++)
pista[i]=0;
for(i=0; i<NUM_VOLTAS;){
temp=(rand()%10)+1;
for(j=0; j<NUM_CORREDORES; j++)
if(temp==pista[j])
break;
if(j==10){
pista[k]=temp;
k++;
}
if(k==10){
i++;
printf("\n\nVolta %d",i);
for(k=0; k<NUM_CORREDORES; k++)
printf("\nCorredor %d: %d",k+1,pista[k]);
k=0;
for(j=0; j<NUM_CORREDORES; j++)
pista[j]=0;
}
}
system("pause");
}
Boa tarde Nathalia .
http://www.cplusplus.com/reference/cstdlib/rand/
x = (rand()%j)+1; // porque estás a fazer assim e não assim x = rand()%j+1; porque é diferente ...
Tenta fazer dessa maneira que te disse se não der tenta ver os valores da variavel J para ver que têm os valores corretor mas eu acho que se fizeres assim já vai funcionar