No internet connection
  1. Home
  2. Dúvidas Gerais

BeeCrowd Exercicio 1182

Por Fabricio Postarek Curi @fabcuri
    2023-10-29 21:57:00.509Z

    nesse exercicio da Coluna na Matrizestou comentendo um erro, acredito que é na montagem da matriz...
    veja o codigo que escrevi:

    var input = require('fs').readFileSync('/dev/stdin', 'utf8');
    var lines = input.split('\n');

    var L = parseInt(lines[0]);
    var operation = lines[1].trim();
    var M = [];

    for (var i = 2; i < 14; i++) {
    M.push(lines[i].split(' ').map(Number));
    }

    var sum = 0;

    for (var i = 0; i < 12; i++) {
    sum += M[L][i];
    }

    if (operation === 'M') {
    var average = sum / 12.0;
    console.log(average.toFixed(1));
    } else if (operation === 'S') {
    console.log(sum.toFixed(1));
    }

    alguem consegue me ajudar??

    • 2 respostas
    1. Fabricio, você começou bem o exercício pegando os dois primeiros itens de entrada, sendo o primeiro a coluna a ser considerada e o segundo qual operação deverá ser feita.

      O problema está exatamente na montagem da matriz, que é feita de 144 elementos, você está considerando apenas 12 entradas, então na verdade o que você montou foi um array.

      Você deve primeiro montar a matriz completa com um for dentro de outro, e depois fazer esse for que você fez de 0 até 12 considerando a coluna L.

      for (let i = 0; i<12; i++) {
          let linha = [];
          for (let j = 0; j <12 ; j++) {
              let numero = parseFloat(lines.shift());
              linha.push(numero)
          }
          M.push(linha);
      }
      
      for (let i=0; i<12; i++) {
          soma += M[i][coluna];
      }
      

      Depois só fazer o if conforme você fez. Caso dê erro, coloque no seu if

      if (operation == 'M\r')
      

      o meu estava dando bug e tive que colocar assim.

      1. Em resposta afabcuri:

        Não cheguei nessa ainda, mas quando chegar dou um pulo aqui para tentar ajudar!