Como solucionar esse exercício?

Galera, estou empacado nesse exercício abaixo. Gostaria de uma luz pq ja tentei fazer de várias formas e não consigo chegar no resultado.

O exercício é o seguinte:

Entrada de dados -
A entrada consiste de uma única linha que contém dois inteiros H e P (1 ≤ H, P ≤ 1000) indicando respectivamente o número total de coxinhas consumidas e o número total de participantes na competição.

Saída de dados -
Seu programa deve produzir uma única linha com um número racional representando o número médio de coxinhas consumidas pelos participantes. O resultado deve ser escrito como um número racional com exatamente dois dígitos após o ponto decimal, arredondado se necessário.

O código que eu escrevi ficou assim:

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String input = scan.nextLine(); / insere o H e o P na mesma linha/

String[] inputSplit = input.split(" "); **/ faz a divisão pelo espaço em branco/**


int H = Integer.parseInt(inputSplit[0]); **/atribuindo cada variável no seu respectivo slot/**
int P = Integer.parseInt(inputSplit[1]);**/atribuindo cada variável no seu respectivo slot/**

double media = Double.parseDouble(H)/Double.parseDouble(P); **/convertendo para double e executando a operação de divisão/**

System.out.printf("%.2f", media); **/mostrando o resultado com duas casas decimais/**

scan.close();

}
}

Parece tudo certo, só a linha em que vc chama o parseDouble que dá erro. Para corrigir, troque isto:

double media = Double.parseDouble(H)/Double.parseDouble(P);

Por isto:

double media = (double) H / P;

Ou então, vc poderia substutir as chamadas de parseInt por parseDouble direto, assim:

double H = Double.parseDouble(inputSplit[0]);
double P = Double.parseDouble(inputSplit[1]);
double media = H / P;

E uma coisa legal é que vc nem precisa daquele split, bastaria invocar o nextInt 2 vezes, pois ele já é capaz de ler os 2 valores na mesma linha já que estarão separados por um espaço. Ficaria assim:

import java.util.Scanner;

public class Main {
  private static final Scanner scan = new Scanner(System.in);

  public static void main(String[] args) {
    double H = scan.nextInt();
    double P = scan.nextInt();
    double media = H / P;
    System.out.printf("%.2f\n", media);
  }
}
1 curtida

Isso são textos de um dialogo seu com alguém? Eu não sei como ajudar.

Valeu! o código rodou quando troquei pela linha: “double media = (double) H / P;”

1 curtida