Programação Progressiva
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Programação Progressiva

Fórum para dúvidas dos sites: Programação Progressiva, Java Progressivo, C Progressivo


Você não está conectado. Conecte-se ou registre-se

8.1- CORREÇÃO DO EXERCÍCIO 9 DO LAÇO FOR!

Ir para baixo  Mensagem [Página 1 de 1]

Nininho2000



Sei que o fórum esta praticamente morto, mas ainda assim sou grato aos seus criadores por me darem o conteúdo para poder aprender java, estava fazendo o exercício 9 do laço for (8.1), que pede:

9. Construa um aplicativo em Java para gerar 20 números de 1000 a 1999 e mostrar aqueles que divididos por 11 deixam resto 5.

Não consegui fazer sozinho, então olhei na resposta e descobri que tinha um erro na síntese do código resposta.

Código:
import java.util.Random;

public class aleatorio1 {
    public static void main(String[] args) {

        // Passo 1: preparando o gerador
        Random randomGenerator = new Random();
        
        // Passo 2: gerando 20 números
        for(int count=1 ; count <= 20 ; count++){ //ERRO NA SÍNTESE DESSA LINHA.
        
        // Passo 3: gerando um número entre 1000 e 1999
            int num_aleatorio = randomGenerator.nextInt(1000) + 1000;
            
        // Passo 4: imprimindo somente os que deixam resto 5 na divisão por 11
            if(num_aleatorio % 11 == 5)
                System.out.println(num_aleatorio);
        }
    }

}

O erro é o seguinte, o programa gera 20 números, e mostra apenas aqueles dentro desses 20 números que dividido por 11 sobrem resto 5. Geralmente mostravam entre 3 e 5 números com essas condições. Não sei se era assim mesmo para ser, mas caso você queira mostrar 20 números que divididos por 11 sobrem resto 5, você deve mudar o contador de lugar.

Código:
public static void main(String[] args){
  int num_aleatorio;
       
       // Passo 1: gerando 20 números
       for(int count=1 ; count <= 20 ;){
           
       // Passo 2: preparando o gerador
           Random randomGenerator = new Random();
       
       // Passo 3: gerando um número entre 1000 e 1999
           num_aleatorio = randomGenerator.nextInt(1000) + 1000;
           
       // Passo 4: imprimindo somente os que deixam resto 5 na divisao por 11
           if(num_aleatorio % 11 == 5){
               System.out.println(num_aleatorio);
               count++; //AQUI!!!!!.
           }
       }
       
   }
}

O contador nessa parte só vai acrescentar 1 se a condição for verdadeira, então ele vai gerar mais de 20 numeros porém só vai imprimir 20 em que a condição seja verdadeira.

Desculpem se entendi errado o exercicio. Até mais.

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos