O enunciado da questao:
“Um programa q le um conjunto de numeros inteiro usando while e calcule sua media”
o que eu fiz:
Scannerinput=newScanner(System.in);System.out.print("Determine o tamanho do conjunto: ");intconjunto=input.nextInt();inttamanho[]=newint[conjunto];System.out.println("Digite "+conjunto+" numeros: ");for(inti=0;i<tamanho.length;i++){tamanho[i]=input.nextInt();}for(inti=0;i<tamanho.length;i++){inttotalNum=0;while(tamanho[i]!=0){totalNum=totalNum+tamanho[i];System.out.print(""+totalNum);intmedia;media=totalNum/conjunto;System.out.print(""+media);}System.out.println("Erro!");}}}
Não entendi o pq do while dentro do for. Além disso, sua mensagem de erro vai ser impressa toda hora. Seguindo mais ou menos a linha de racicionio que pude entender do seu código, farias as seguintes mudanças:
Scannerinput=newScanner(System.in);System.out.print("Determine o tamanho do conjunto: ");intconjunto=input.nextInt();inttamanho[]=newint[conjunto];System.out.println("Digite "+conjunto+" numeros: ");for(inti=0;i<tamanho.length;i++){tamanho[i]=input.nextInt();}inttotalNum=0;for(inti=0;i<tamanho.length;i++){totalNum=totalNum+tamanho[i];}doublemedia;media=(double)totalNum/(double)conjunto;System.out.print("Média:"+media);}}
eu só preferi colocar a média como double, caso contrário vc vai obter apenas o número inteiro depois de a média ser arredondada, mas se vc nao kiser fazer essa mudança, basta colocar a média como interira de novo.
Uma outra opção para pegar os inputs seria deixar o usuário colocar qtos números kisesse sem mandar ele colocar a qtde de numeros que deseja, e colocando uma tecla de escape para ver se ele acabou de colocar os numeros...
Vini_Fernandes
publicclassCalculo{publicdoublemedia(Object[]numeros){intcount=0;doublemedia=0;while(count<numeros.length){media+=Double.valueOf(numeros[count].toString());count++;}returnmedia/numeros.length;}publicstaticvoidmain(String[]args){Calculocalculo=newCalculo();System.out.println("A media dos interios eh: "+calculo.media(args));}}
Cara, veja que este programa nao se recupera quando o usuario digita um caractere qualquer na linha de comando. Cabe a voce tratar as excecoes! Note tambem que voce podera digitar alem de inteiros, por exemplo:
java Calculo 12 23.33 5435.555 222222
e a saida sera:
A media dos interios eh: 56923.22125
Ate
Lavieri
Acho que c vc quer fazer com while ... isso quer dizer, que vc tem que ficar no loop enquanto uma condição for verdade... acredito que o melhor seria perguntar se o usuario deseja digitar mais um número... e assim calcular a media
Ps.: vc poderia verificar se o valor digitado foi em branco e ai sair do loop... mais no exemplo que coloquei... vc digita "S" para continuar no loop
publicstaticvoidmain(String...args){Scannerinput=newScanner(System.in);intcount=1;System.out.print("Digite o numero: ");doublemedia=input.nextDouble();booleancontinuarCalculando;do{System.out.print("Deseja digitar mais um número? ");continuarCalculando=input.next().toUpperCase().equals("S");if(continuarCalculando){System.out.print("Digite o numero: ");media=(media*count+input.nextDouble())/(++count);}}while(continuarCalculando);System.out.println("Media: "+media);}
W
W.Rodrigues
Scannerteclado=newScanner(System.in);Stringopcao="s";intcont=0;doublemedia=0;intsoma=0;intnum=0;while(opcao.equalsIgnoreCase("S")){cont++;System.out.println("Digite um numero: ");num=teclado.nextInt();soma=soma+num;System.out.println("Deseja entrar com outro numero? (s/n): ");opcao=teclado.next();}media=(soma/cont);System.out.println("A média dos numeros digitados é: "+media);
Evellyn
Gente, muito obrigada, vlw msm.
rafaelgiffonepc
Muito obrigado!
Me ajudou também a construir um laço de repetição.