Solucionando Desafios em Java - Média 3

20/08/2021 11:34

GC

Guimel Cavalcante

Brasil

Solucionando Desafios em Java - Média 3

// POR FAVOR, AJUDEM. 2 DE 4 TESTES NÃO TIVERAM SUCESSO, REVISANDO O CODIGO PELO ERRO QUE O TESTE APONTA O ENUNCIADO PARECE CONTRADITORIO EM RELAÇÃO A SAIDA DOS DADOS.

Leia quatro números (N1, N2, N3, N4), cada um deles com uma casa decimal, correspondente às quatro notas de um aluno. Calcule a média com pesos 2, 3, 4 e 1, respectivamente, para cada uma destas notas e mostre esta média acompanhada pela mensagem "Media: ". Se esta média for maior ou igual a 7.0, imprima a mensagem "Aluno aprovado.". Se a média calculada for inferior a 5.0, imprima a mensagem "Aluno reprovado.". Se a média calculada for um valor entre 5.0 e 6.9, inclusive estas, o programa deve imprimir a mensagem "Aluno em exame.".

No caso do aluno estar em exame, leia um valor correspondente à nota do exame obtida pelo aluno. Imprima então a mensagem "Nota do exame: " acompanhada pela nota digitada. Recalcule a média (some a pontuação do exame com a média anteriormente calculada e divida por 2). e imprima a mensagem "Aluno aprovado." (caso a média final seja 5.0 ou mais ) ou "Aluno reprovado.", (caso a média tenha ficado 4.9 ou menos). Para estes dois casos (aprovado ou reprovado após ter pego exame) apresente na última linha uma mensagem "Media final: " seguido da média final para esse aluno.

Entrada

A entrada contém quatro números de ponto flutuante correspendentes as notas dos alunos.

Saída

Todas as respostas devem ser apresentadas com uma casa decimal. As mensagens devem ser impressas conforme a descrição do problema. Não esqueça de imprimir o enter após o final de cada linha, caso contrário obterá "Presentation Error".

// CODIGO USADO.

import java.io.IOException;

import java.util.Scanner;

public class Main {

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

    Scanner entrada = new Scanner(System.in);

    double N1 = (entrada.nextDouble() * 2) / 10;

    double N2 = (entrada.nextDouble() * 3) / 10;

    double N3 = (entrada.nextDouble() * 4) / 10;

    double N4 = (entrada.nextDouble() * 1) / 10;

    double N5;

    double media = N1 + N2 + N3 + N4;

    if (media*10 - Math.floor(media*10) > 0.5001) {

     media = Math.ceil(media*10)/10;

    }

    else {

      media = Math.floor(media*10)/10;

    }

    System.out.printf("Media: %.1f\n", media);

    if (media < 5.0) {

     System.out.println("Aluno reprovado.");

    }

    if (media >= 7.0) {

     System.out.printf("Aluno aprovado.\n");

    }

    else if (media >= 5.0) {

     System.out.printf("Aluno em exame.\n");

     N5 = entrada.nextDouble();

     System.out.printf("Nota do exame: %.1f\n",N5);

     media = (media + N5) / 2;

      if (media >= 5) {

      System.out.println("Aluno aprovado.");

      }

      else {

      System.out.println("Aluno reprovado.");

      }

      System.out.printf("Media final: %.1f\n",media);

    }

  }

 }

// OS ERROS DOS TESTES.

Teste #1

Dado de entrada:

0.0 9.9 10.0 0.0

5.1

Saída esperada:

Media: 7.0

Sua Saída:

Media: 7.0

Aluno aprovado.

Teste #2

Dado de entrada:

2.0 4.0 7.5 8.0

2.2

Saída esperada:

Media: 5.4

Aluno em exame.

Nota do exame: 2.2

Aluno reprovado

Media final: 3.8

Sua Saída:

Media: 5.4

Aluno em exame.

Nota do exame: 2.2

Aluno reprovado.

M

// DESDE JÁ, AGRADEÇO A QUEM PUDER INDICAR A DIREÇÃO CORRETA PRA RESOLVER O PROBLEMA.

0

Comentários