JAVA - Digita numeros, soma, media, qt pares e impares

Olá pessoal,

Agradeço muito esse espaço e aos colegas de boa vontade em compartilhar conhecimento. Aqui é um dos poucos lugares que consigo ajuda. Muito grata!

Nesse exercício consegui programar e rodar 100% somente até calcular a média.
Não consigo incluir a parte que calcula a soma da quantidade de números pares e a de números ímpares.

O exercício é o seguinte:
O usuário digita quantos números quiser até que digite -1 para sair do programa.
Quando é digitado -1 o programa deve retornar o seguinte:

  1. Mensagem “Obrigado e até logo!”
  2. Soma dos números digitados
  3. Soma da quantidade de números digitados
  4. Valor da média da soma dos números digitados
  5. Quantidade de números pares
  6. Quantidade de números ímpares

Aqui o que consegui fazer até agora
Obs: usar somente “int”, “long”, “while” e “if”: (nada de for, do ou array - ainda não chegamos nesse nível)

import java.util.Scanner;

public class Calculos {

public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    System.out.println("Digite quantos números quiser (-1 sai): ");
    
    int numero= 0;
    int soma= 0;
    int quant= 0;
    int par = numero % 2;

        while (true){    
            numero= Integer.parseInt(lukija.nextLine());
            if (numero == -1) {
                break;
            }
            soma = soma + numero;
            quant++;
         }
    double media = 1.0*soma/quant;
            if (par == 0) {
            par++;
            }
            else {
            impar++;
            }    
    System.out.println("Obrigado e até logo!");
    System.out.println("Soma: " + soma);
    System.out.println("Quantidade de numeros: " + quant);
    System.out.println("Media: " + media);
    System.out.println("Quant de numeros pares: " + par);
    System.out.println("Quant de numeros impares: " + impar);
}

}

1 curtida

Bom Dia.
Você deve inicializar a variável par e impar como int e 0;
int par = 0;
int impar = 0;

para fazer a verificação se o número é par ou impar você faz assim:

if(numero%2==0){ 
par++;
}else{ 
impar++;
}
1 curtida
public void start(Stage primaryStage) {    
System.out.println("Digite quantos números quiser (-1 sai): ");

int numero = 0;
int soma= 0;
double media = 0;
int qtde= 0;
int qtdePar = 0;
int qtdeImpar = 0;

Scanner input = new Scanner(System.in);

while (true) {        
    numero = Integer.valueOf(input.nextLine());        
    if (numero!=-1) {
        soma = soma+numero;
        qtde++;
        media = Double.valueOf(soma)/Double.valueOf(qtde);
        if (numero%2==0) {
            qtdePar++;
        } else {
            qtdeImpar++;
        }    
        System.out.println("Soma: " + soma);
        System.out.println("Quantidade de numeros: " + qtde);
        System.out.println("Media: " + media);
        System.out.println("Quant de numeros pares: " + qtdePar);
        System.out.println("Quant de numeros impares: " + qtdeImpar);
    } else {
        System.out.println("Obrigado e até logo!");
        System.exit(0);
    }
}

Valeu klonder!

Consegui fazer também de um jeito um pouco diferente que dá na mesma. Ajudou bastante! Obrigada!

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

    System.out.println("Digite números (-1 sai): ");

    int soma= 0;
    int quant= 0;
    int par = 0;
    int impar= 0;

    while (true){    
        int numero = Integer.parseInt(lukija.nextLine());

        if (numero == -1) {
            break;
        } else if(numero%2==0){ 
            par++;
        } else{ 
            impar++;
        }                
        
        soma = soma + numero;
        quant++;
    }
    double media= soma/(quant*1.0);
    
    System.out.println("Obrigado e até logo!");
    System.out.println("soma: " + soma);
    System.out.println("quant: " + quant);
    System.out.println("media: " + media);
    System.out.println("par: " + par);
    System.out.println("impar: " + pariton);

}

}

KPS, obrigada pela ajuda!

Eu fiz dessa forma:
// Faça um programa que leia valores inteiros continuamente, até que um valor menor ou

// igual a zero seja digitado. A seguir, o programa deve exibir.

// - A soma dos números digitados

// - A quantidade de números digitados

// - A média dos números digitados

// - O maior número digitado

// - O menor número digitado

// - A média dos números pares

import javax.swing.JOptionPane;

public class NumerosContinuamente1 {

public static void main(String[]args) {

    double valorInteiro;

    double somaNumeros = 0;

    double contNumeros = 0;

    double mediaNumeros = 0;

    double maiorNumero = 0;

    double menorNumero = 0;

    double contNumeroPar = 0;

    double mediaNumeroPar = 0;

    double numeroPar = 0;

    double numeroParTot = 0;

    do {

        valorInteiro = Double.parseDouble(JOptionPane.showInputDialog("Digite um valor"));

        System.out.println("Valor digitado: " + valorInteiro);

        somaNumeros += valorInteiro;

        contNumeros++;

        mediaNumeros = somaNumeros / (contNumeros);

        if (maiorNumero < valorInteiro) {

            maiorNumero = valorInteiro;

        }

        if (menorNumero > valorInteiro) {

            menorNumero = valorInteiro;

        }

        if (valorInteiro % 2 == 0) {

            numeroPar = valorInteiro;

            numeroParTot += numeroPar;

            mediaNumeroPar = numeroParTot / (contNumeroPar);

            contNumeroPar++;

        }

    }while (valorInteiro > 0);

        JOptionPane.showMessageDialog(null, "A soma dos numeros digitados: " + somaNumeros + "\nQuantidade de numeros digitados: " + contNumeros + "\nMedia dos numeros digitados: " + mediaNumeros + "\nMaior numero digitado: " + maiorNumero + "\nMenor numero digitado: " + menorNumero + "\nA media dos numeros pares: " + mediaNumeroPar + "\nContador numero par: " + contNumeroPar);

        System.out.println("\nA soma dos numeros digitados: " + somaNumeros + "\nQuantidade de numeros digitados: " + contNumeros + "\nMedia dos numeros digitados: " + mediaNumeros + "\nMaior numero digitado: " + maiorNumero + "\nMenor numero digitado: " + menorNumero + "\nA media dos numeros pares: " + mediaNumeroPar + "\nContador numero par: " + contNumeroPar + "\n");

}

}

O tipo double não representa números inteiros.
:man_shrugging: