Calculador de media, não informando a quantidade de numeros
12 respostas
Tektron
Se alguem poder me ajuda, estou na diciplina de algoritoms e programação.
O meu algoritmo!
publicclassMedia{publicstaticvoidmain(String[]agrgs){doublenumeros=Entrada.leiaDouble("Valor: ");intpergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");intvezes=1;while(pergunta==1){numeros=Entrada.leiaDouble("Valor: ");pergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");numeros=numeros+numeros;vezes=vezes+1;}while(pergunta<1||pergunta>2){numeros=Entrada.leiaDouble("Valor: ");pergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");numeros=numeros+numeros;vezes=vezes+1;}if(pergunta==2){System.out.println("Media: "+(numeros/vezes));}}}
esse algoritmo não esta funcionando corretamente
não sei onde esta meu erro, se é na matematica ou na programação
mcirqueira
Cara, ao colocar codigo, ultilize as tags code.
Quando se ultiliza || ou &&, colocasse parenteses:
Veja:
publicclassMedia{publicstaticvoidmain(String[]agrgs){doublenumeros=Entrada.leiaDouble("Valor: ");intpergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");intvezes=1;while(pergunta==1){numeros=Entrada.leiaDouble("Valor: ");pergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");numeros=numeros+numeros;vezes=vezes+1;}while((pergunta<1)||(pergunta>2)){// coloque os parenteses nas duas expressõesnumeros=Entrada.leiaDouble("Valor: ");pergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");numeros=numeros+numeros;vezes=vezes+1;}if(pergunta==2){System.out.println("Media: "+(numeros/vezes));}}}
Não entendi muito bem seu código não.
É pra que?
Tektron
calcular a media de numeros, independente da quantidade dos mesmo
ex: (10+10+10+10)/4=10
se tiver uma outra sugestão de algoritmo
é bem vinda
ViniGodoy
Observe que você usou a variável números tanto para a leitura do número, quanto para a soma dos números.
Isso não dá certo, pois a cada leitura, você destrói o que a variável tinha antigamente.
Além disso, essa conta:
numeros=numeros+numeros;
Vai simplesmente multiplicar o valor atual de números por 2.
A lógica está quase certa. Apenas crie duas variáveis e o problema estará resolvido.
Tektron
Eu não entendi muito bem o que você quis dizer.
Se poder postar um exemplo usando essas 2 variaveis.
ViniGodoy
publicclassMedia{publicstaticvoidmain(String[]agrgs){intpergunta=1;intvezes=0;doublesoma=0;while(pergunta==1){doublenumero=Entrada.leiaDouble("Valor: ");soma+=numero;vezes++;pergunta=Entrada.leiaInt("Adicionar mais um numero 1/sim 2/não: ");}System.out.printf("Media: %.2f%n",soma/vezes);}}
mcirqueira
Ah! Uma programa para tirar médias aritméticas?!?!
Uma colega já fez isso no fórum, só não me lembro o nome dela, veja este programinha de CONSOLE:
importjava.util.Scanner;publicclassMedias{publicstaticvoidmain(String[]args){Scannerler=newScanner(System.in);System.out.print("Digite o primeiro numero: ");doublenum1=ler.nextDouble();System.out.print("Digite o segundo numero: ");doublenum2=ler.nextDouble();System.out.print("Digite o terceiro numero: ");doublenum3=ler.nextDouble();System.out.print("Digite o quarto numero: ");doublenum4=ler.nextDouble();doublemedia=(num1+num2+num3+num4)/4;System.out.println("A media aritmetica e "+media);}}
Tektron
Muito obrigado!!
Você foi de grande ajuda.
mcirqueira
Tektron:
Muito obrigado!!
Você foi de grande ajuda.
De nada!
Ao fazer um programa matemático em java, pense como você faria no lápis e papel. Depois coloque-os em java.
W
Wallace_Faustino
Olá amigo,
também estou começando, mas da uma olhada neste código e vê se é isso que você quer!
importjava.util.Scanner;publicclassMedia{publicstaticvoidmain(String[]agrgs){Scanners=newScanner(System.in);doublenumeros;doublemedia=0;intpergunta;intvezes=0;do{System.out.print("Valor: ");numeros=s.nextDouble();media+=numeros;System.out.print("Adicionar mais um numero 1/sim 2/não: ");pergunta=s.nextInt();vezes++;}while((pergunta==1)||(pergunta<1)||(pergunta>2));if(pergunta==2){System.out.println("Media: "+(media/vezes));}}}