Exercício beecrowd | 1006

Pessoal estou fazendo um exerciocio da breecrowd que pede para escrever um programa que calcule a média ponderada de um aluno, Porém estou recebendo a mensagem de que a resposta está errada segue o enunciado:

Leia 3 valores, no caso, variáveis A, B e C, que são as três notas de um aluno. A seguir, calcule a média do aluno, sabendo que a nota A tem peso 2, a nota B tem peso 3 e a nota C tem peso 5. Considere que cada nota pode ir de 0 até 10.0, sempre com uma casa decimal.

Entrada

O arquivo de entrada contém 3 valores com uma casa decimal, de dupla precisão (double).

Saída

Imprima a mensagem “MEDIA” e a média do aluno conforme exemplo abaixo, com 1 dígito após o ponto decimal e com um espaço em branco antes e depois da igualdade. Assim como todos os problemas, não esqueça de imprimir o fim de linha após o resultado, caso contrário, você receberá “Presentation Error”.

MEU CÓDIGO:

import java.io.IOException;

import java.util.Scanner;

public class Main {

public static void main(String[] args) throws IOException {

 Scanner input = new Scanner(System.in);
    
    double A, B, C;
    double Pa, Pb, Pc, Pt;
    double MEDIA;
    
    Pa = 2.0;
    Pb = 3.0;
    Pc = 5.0;
    Pt = Pa + Pb + Pc;
   
    A = input.nextDouble();
    B = input.nextDouble();
    C = input.nextDouble();
    
    MEDIA = (A*Pa + B*Pb + C*Pc) / Pt;
    System.out.println("MEDIA = "+ MEDIA);
    input.close();

   

}

}

Não estás a definir o número de casas decimais no teu print.

System.out.printf("%s%.1f","MEDIA = ", MEDIA);
1 curtida

mas por padrão no java quando eu uso double ele não virá sempre com uma casa decimal ? porque eu tenho que usar o printf para formatar ?

De onde tiraste essa ideia?

Testa tu mesmo…

double d1 = 1.0;
double d2 = 3.0;

System.out.println(d1/d2);

0.3333333333333333

1 curtida

você tem razão, testei aqui e deu certo, obrigado.