desenvolver um algoritmo que leia varios numeros inteiros positivos. Repetir a sequencia até que o numero 0 seja digitado. No final imprimir o total de números multiplos de 8 e a média de todos os numeros lidos. OBS: Utilizar a estrutura de repetição com teste no final (continua - enquanto for)
Me ajudem por favor
14 Respostas
campanha para mudar o nome do guj para “naoFazemosSuaTarefa.com” aberta.
EU ja vi mil vezes aqui no guj a dizerem que não se deve criar topicos com nomes não sugestivos, e este nome do teu topico não é nada sugestivo,
Se tiver alguma dúvida sobre realizar a sua tarefa, basta postar o código ou dizer aonde você parou.
Já que nosso objetivo é ajudar, trocar experiência e aprender com as pessoas que querem aprender java.
EU SÓ QUERIA SABER ONDE EU ERREI, NÃO PRECISAVAM SER TÃO MAL EDUCADOS, KI LUGAR É ESSE??????
XINGAMENTO REMOVIDO PELA MODERAÇÃO
import java.util.Scanner;
public class Multiplo8 {
public static void main (String args[]){
String resp;
int n, soma, mult;
float media;
Scanner entrada = new Scanner (System.in);
System.out.println ("Digite S para rodar o programa ou N para sair ");
resp = entrada.nextLine ();
soma = 0;
media = 0;
mult = 0;
If (resp.equals ("S")|| resp.equals ("s")){
System.out.println ("Digite um numero: ");
n = entrada.nextInt ();
soma = soma + 1;
media = (media + n)/soma;
while (n > 0){
if (n % 8 == 0){
mult = mult + 1;
}
System.out.println ("Deseja continuar? ");
resp = entrada.nextLine ();
}
}
System.out.println ("O total de números multiplos de 8 sao: " + mult);
System.out.println ("A média dos números lidos e: " + media);
}
}
PEÇO DESCULPA PRA VC OTAVIO, PELO MENOS UM Q NÃO FOI MAL EDUCADO
dá uma olhada na linha 26 do seu código
no if você colocou com I maiúculo.
Outra coisa quando for postar código use as tags code
Ficará da seguinte forma.
if (resp.equals ("S")|| resp.equals ("s")){
System.out.println ("Digite um numero: ");
n = entrada.nextInt ();
soma = soma + 1;
media = (media + n)/soma;
muito obrigado Otavio, mas
agora ele travou na msg “deseja continuar?”
Faz o seguinte ao invés do nextLine tenta o next.
Outra coisa ao invés de se usar o equal s e S você pode usar o equalIgnoreCase que pega a String ignorando se ela é maiúscula ou minúscula.
Veja se desse modo é do jeito que você quer, qualquer outra dúvida ou qualquer erro basta falar.
import java.util.Scanner;
public class Multiplo8 {
public static void main (String args[]){
String resp;
int n, soma, mult;
float media;
Scanner entrada = new Scanner (System.in);
System.out.println ("Digite S para rodar o programa ou N para sair ");
resp = entrada.nextLine ();
soma = 0;
media = 0;
mult = 0;
while(resp.equalsIgnoreCase("s")){
if (resp.equalsIgnoreCase("s")){
System.out.println ("Digite um numero: ");
n = entrada.nextInt ();
soma = soma + 1;
media = (media + n)/soma;
if (n % 8 == 0){
mult = mult + 1;
}
System.out.println ("Deseja continuar? ");
resp = entrada.next();
}
}
System.out.println ("O total de números multiplos de 8 sao: " + mult);
System.out.println ("A média dos números lidos e: " + media);
}
}
O motivo que está travando foi esse código.
Ele ficará no loop enquanto n for maior que zero e você não faz nenhuma operação que altere o valor de n então, ele será um loop infinito.
while (n > 0){
if (n % 8 == 0){
mult = mult + 1;
}
valeu otavio, muito obrigado mesmo, eu perdi a noite inteira e não conseguia resolver esse problema
um abraço enorme
Perfeito,
Qualquer outra dúvida basta postar aqui no guj.
E modifica o seu título e coloca no título
“me ajudem por favor” [Resolvido]
Na verdade, com o Scanner no console, o único método que deve ser usado é o nextLine(). Não use nextInt(), nem nextDouble(), nem next().
O scanner trava pois os demais métodos lêem do console, sem ler o \n. Esse \n fica como lixo na memória do scanner e, numa próxima leitura, trava-se nele.
Usando o nextLine() você jamais terá esse problema.
Você vai notar que códigos com next sem a palavra “line” tornam-se muito instáveis. Muitas vezes a leitura não é confiável, ou trava.
Use esses métodos somente para lidar com arquivos.
Se você queria sabe onde errou, porque não postou o código que você fez já de cara? Você havia postado apenas o enunciado, e isso indicava que você queria o exercício resolvido.
Desculpe a má educação do colega, é que por dia temos recebido uns 2 ou 3 pedidos de lição de casa. E é consenso do fórum de que não resolvemos esses exercícios, por dois motivos:
- Vai atrapalhar o aprendizado de quem pede;
- Vai entupir o fórum de gente pedindo, reduzindo a qualidade do fórum.
Então, da próxima vez que for abrir um tópico, siga essas dicas:
a) Seja claro no seu pedido;
b) Coloque um título descritivo para a dúvida. Sem pedido de ajuda ou urgência;
c) Diga onde você parou;
d) Preferencialmente poste seu código (ou a parte relevante dele) entre as tags code. Se não sabe fazer isso, leia:
<aside class="onebox whitelistedgeneric">
<header class="source">
<img src="/uploads/3X/a/c/aca909929d4899c084464ec4f7141365492663e0.png.webp" class="site-icon" width="128" height="128">
<a href="http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor" target="_blank" title="02:33PM - 16 January 2007">GUJ – 16 Jan 07</a>
</header>
<article class="onebox-body">
<img src="https://www.guj.com.br/images/default-apple-touch-icon.png" class="thumbnail onebox-avatar" width="144" height="144">
<h3><a href="http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor" target="_blank">Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui...</a></h3>
Olá pessoal! Ultimamente tenho notado que grande parte dos novos GUJnautas não perceberam um recurso muito útil e importante que o site do GUJ oferece na hora de criar um post: A Formatação BB (Acho que tem um outro nome mais apropriado, mas não...
e) Use português correto, e jamais poste tópicos ou títulos de tópicos usando apenas LETRAS MAIUSCULAS.
Na verdade, com o Scanner no console, o único método que deve ser usado é o nextLine(). Não use nextInt(), nem nextDouble(), nem next().O scanner trava pois os demais métodos lêem do console, sem ler o \n. Esse \n fica como lixo na memória do scanner e, numa próxima leitura, trava-se nele.
Usando o nextLine() você jamais terá esse problema.Você vai notar que códigos com next sem a palavra “line” tornam-se muito instáveis. Muitas vezes a leitura não é confiável, ou trava.
Use esses métodos somente para lidar com arquivos.
valeu pela dica.