DoisReal 0 Denunciar post Postado Outubro 2, 2010 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(); } Compartilhar este post Link para o post Compartilhar em outros sites
DoisReal 0 Denunciar post Postado Outubro 3, 2010 Olá Pessoal, Pode encerrar o tópico, descobri a resposta. Em vez de: int mult = 100000; for (int i = 0; i < 5; i++) { for (int l = 0; l < 6; l++) { O correto é: for (int i = 0; i < 5; i++) { int mult = 100000; for (int l = 0; l < 6; l++) { Compartilhar este post Link para o post Compartilhar em outros sites