Escreva um programa em Java, com uma única classe, para calcular a média de gastos de uma pessoa no Shopping. No método main, o programa deve perguntar ao usuário quantas compras ele faz em uma tarde no shopping. Para cada compra, o programa deve perguntar o valor gasto. O programa deve, então, calcular a média de gastos. Ou seja, o somatório dos gastos dividido pela quantidade de compras. Por fim, o programa deve informar ao usuário qual é a média de gastos dele por compra.
public static void main(String[] args) {
int compras;
Scanner aux = new Scanner(System.in);
System.out.println("Quantas Compras você realizou");
for (int i=0; i < compras; i++) {
System.out.printf("O valor da compra %d foi \n: ", i+1);
}
Como faço para informar o preço de cada compra e depois somar tudo?
Boa noite, acredito que será mais ou menos assim, porém depende muito do que foi passado pra você, pois acredito que trabalhar com expressões lambdas e lista, seria mais intuitivo:
Scanner leitorDeValores = new Scanner(System.in);
String valorCompra = "";
int totalCompra = 0;
int qntCompra = 0;
do {
System.out.print("Digite o valor da compra: ");
valorCompra = leitorDeValores.nextLine();
if (valorCompra.equals("0")) {
break;
}
totalCompra += Integer.valueOf(valorCompra);
System.out.println("Valor da compra: " + valorCompra);
qntCompra++;
} while (true);
System.out.println("Média Total das Compras: " + (totalCompra / qntCompra));
Por exemplo, dessa forma aqui acho que ficaria melhor:
public static void main(String[] args) {
List<Double> listaDasCompras = new ArrayList<>();
while (true) {
System.out.print("Digite o valor da compra: ");
double valor = console();
if(valor == 0) { //digite 0 para finalizar a inserção
break;
}
listaDasCompras.add(valor);
}
System.out.println();
NumberFormat reais = NumberFormat.getCurrencyInstance(new Locale("pt", "BR"));
listaDasCompras.stream().forEach(e -> System.out.printf("%s : %s\n", "Valor da compra", reais.format(e)));
double totalDasCompras = 0;
for (double valor : listaDasCompras) {
totalDasCompras += valor;
}
System.out.println();
System.out.println("Valor total das compras: " + reais.format(totalDasCompras));
System.out.println("Média das compras: " + reais.format(totalDasCompras / listaDasCompras.size()));
}
private static double console() {
Scanner scan = new Scanner(System.in);
double valor = scan.nextDouble();
return valor;
}
Exemplo:
![Captura%20de%20tela%20de%202020-07-19%2020-25-37](https://www.guj.com.br/uploads/default/original/3X/c/a/cae2791ab8aee9915e8af6eebec9f961c1f79507.png)