Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DoisReal

[Resolvido] Problemas com laço FOR

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.