E ai pessoal, sou novo aqui no PJ e sou novo em programação também, estou aprendendo Java na faculdade (segunda fase)
o problema é o seguinte:
- Construir um algoritmo que calcule a média aritmética de vários valores inteiros positivos, lidos externamente. O final da leitura acontecerá quando for lido um valor negativo
ai vai o código que eu fiz:
[code] import javax.swing.JOptionPane;
public class MediaAritimetica {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int valor = 0, quantidade = -1, soma = 0;
while (valor >= 0) {
valor = Integer.parseInt(JOptionPane.showInputDialog("Informe um valor inteiro." +"\n" + "Para terminar, informe um valor negativo."));
soma = soma + valor;
quantidade = quantidade + 1;
}
JOptionPane.showMessageDialog(null, "Você digitou "+quantidade+" números"+"\n"+"A média é: "+(soma/quantidade));
}
}
[/code]
o programa compilou tudo certinho, consigo executar, o problema é que o programa não tá mostrando o que eu quero!
ele não tá calculando a média corretamente, olhei o código todo, com ajuda de uns amigos e também não conseguimos…
eu usei o while porque quando eu digitar um número negativo, ele deve encerrar o programa, dai achei que ele seria a melhor opção…
por enquanto é isso… valeu!
O problema é que ele ta somando o numero negativo tb… tente assim:
public static void main(String[] args) {
int valor = 0, quantidade = 0, soma = 0;
while (valor >= 0) {
valor = Integer.parseInt(JOptionPane.showInputDialog("Informe um valor inteiro." +"\n" + "Para terminar, informe um valor negativo."));
if(valor>0){
soma = soma + valor;
quantidade = quantidade + 1;
}
}
JOptionPane.showMessageDialog(null, "Você digitou "+quantidade+" números"+"\n"+"A média é: "+(soma/quantidade));
}
}
nao testei aqui mas deve rresolver…
não,
eu inicializei a variavel Quantidade com um numero negativo para resolver outro probleminha, ele estava contando 1 a mais, por exemplo
vc inseria 2 números, ele dizia que vc inseriu 3 entende?
dai do jeito que fiz ele mostra a quantidade de números inseridos corretamente.
mas mesmo assim dava problema na conta…
pois e… mas com esse if que coloquei ai resolve o problema… ele tava dandio um numero a mais pq ele tb somava e contava o numero negativo que vc digitava para parar o looping. agora isso nao mais acontece pq fiz isso
if(valor>0){
soma = soma + valor;
quantidade = quantidade + 1;
}
testa ai que vai funcionar…
puts, foi mal, não reparei no If ali.
agora não dá tempo pra mim testar, quando chegar da aula eu testo e respondo aqui blz?
valeu!
problema resolvido
era isso mesmo, só colocar o if ali e resolveu tudo!
valeu pela ajuda!