Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal,
Estou tentando criar 5 numeros aleatórios, com 6 algarismos cada um. Exemplos: 956123, 254785, 554889, 123456
Como a função "rand()" cria numeros até 32.767 e cada vez que o programa é executado ele não muda significamente de um numero para o outro.
Resolvi gerar um numero por vez, 6 vezes e depois junta-los, assim ficaria um numero realmente aleatório.
O problema é que ele gera apenas o 1º numero, depois parece que o FOR não entra no laço e os outros continuam como 0 (zero)
O resultado que consegui foi, por exemplo: 366985, 0, 0, 0, 0
Ou seja dos 5 numeros, apenas um deu certo.
Segue meu código:
int main() {
srand ((unsigned) time(NULL));
int num[5]; // 5 numeros
int num2[6]; // 6 algarismos
for (int i = 0; i < 5; i++) {
num[i] = 0;
} // zerando os 5 numeros
for (int i = 0; i < 6; i++) {
num2[i] = 0;
} // zerando os 6 algarismos
int mult = 100000;
for (int i = 0; i < 5; i++) {
for (int l = 0; l < 6; l++) {
num2[l] = (rand()%10) * mult;
mult = mult / 10;
num[i] = num[i] + num2[l];
}
}
for (int i = 0; i < 5; i++) {
cout << num[i] << " ";
}
getch();
}Carregando comentários...