0

Desafio em java Capgemini

A
Alfredo Neto

Boa tarde Por favor Peço uma ajuda no desafio aréa inferior em java para saber qual o erro de testes do meu código: mostre-me o Código Correto pra eu saber onde errei a titulo de comparação :

Enunciado:

Leia um caractere maiúsculo, que indica uma operação que deve ser realizada e uma matriz M[12][12]. Em seguida, calcule e mostre a soma ou a média considerando somente aqueles elementos que estão na área inferior da matriz, conforme ilustrado abaixo (área verde).


Entrada

A primeira linha de entrada contem um único caractere Maiúsculo O ('S' ou 'M'), indicando a operação (Soma ou Média) que deverá ser realizada com os elementos da matriz. Seguem os 144 valores de ponto flutuante de dupla precisão (double) que compõem a matriz.


Saída

Imprima o resultado solicitado (a soma ou média), com 1 casa após o ponto decimal.


 

Exemplo de EntradaExemplo de SaídaS

1.0

330.0

-3.5

2.5

4.1

...

112.4


Código aréa inferior:

// Área Inferior


/*

Leia um caractere maiúsculo, que indica uma operação que deve ser realizada e

uma matriz M[12][12]. Em seguida, calcule e mostre a soma ou a média

considerando somente aqueles elementos que estão na área inferior da matriz,

conforme ilustrado abaixo (área verde).

vide arquivo em assets area-inferior.png

- Entrada

A primeira linha de entrada contem um único caractere Maiúsculo O ('S' ou 'M'),

indicando a operação (Soma ou Média) que deverá ser realizada com os elementos

da matriz. Seguem os 144 valores de ponto flutuante de dupla precisão (double)

que compõem a matriz.

- Saída

Imprima o resultado solicitado (a soma ou média), com 1 casa após o ponto

decimal.

*/


import java.io.IOException;

import java.util.Scanner;


public class AreaInferior {

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

  Scanner leitor = new Scanner(System.in);

  double soma = 0;

  char O = leitor.next().toUpperCase().charAt(0);

  double[][] M = new double[12][12];

   

  for (int i = 0; i < 12; ++i) {

   for (int j = 0; j < 12; ++j) {

   M[i][j] = leitor.nextDouble();

   }

  }

   

  for (int i = 0; i < 12; ++i) {

   for (int j = 0; j < 12; ++j) {

   if ((i > 6) && (j < i) && (j > 11 - i))

    soma += M[i][j];

   }

  }


  if (O == 'M')

   soma /= 30;

    

  System.out.println(String.format("%.1f", soma));

 }

}


Erros:


retorno invalido





0
0

Comentários (3)

0
Genivan Santos

Genivan Santos

10/09/2021 21:55

Kalebe Abrantes, poderia me ajudar? to garrado neste mesmo desafio passa em 4/6 dos testes... com o seguinte codigo:

const entradas = gets();

const isSum = entradas === "S";


const xL = 12, yL = 12;


let sum = 0.0, av = 0.0;



for (var y = 0; y < yL; y++) {

 for (var x = 0; x < xL; x++) {

   const i = Number(gets().replace(/\s+/g,' ').trim().split(' '));

   if (x >= (yL - y) && x < y)

   {

     sum += i;

     ++av;

   }

 }

}

console.log((sum / (isSum ? 1 : av)).toFixed("1"));

0
Genivan Santos

Genivan Santos

10/09/2021 21:54

E ai conseguiu Alfredo?

0
Kalebe Abrantes

Kalebe Abrantes

19/08/2021 16:29

Tenta alterar o seu (IF) if(j < i && j > 12 - i - 1). Aconselho também a usar o length que é uma variável final aplicável a matrizes . É uma variável de comprimento que podemos obter o tamanho do array. 


alfredo gelk neto

Brasil