• Matéria: Lógica
  • Autor: joniforte
  • Perguntado 7 anos atrás

Necessitamos uma função maisMenos que receba um array e retorne outro com os seguintes três números:

na primeira posição, a fração de números que são positivos
na segunda posição, a fração de números que são zero
na última posição, a fração de números que são negativos
Por exemplo, maisMenos([1, 2, 0, -1]) deveria retornar [0.5, 0.25, 0.25], devido a que há 50% de positivos, 25% de zeros, e 25% de negativos.

Escreva a função maisMenos.

Respostas

respondido por: jcopaz
6

Resposta:

function maisMenos(numeros) {

 var quantidade = numeros.length

 var positivos = 0;

 var zeros = 0;

 var negativos = 0;

 var i = 0;

 

 for (var i = 0; i < quantidade; i++) {

   if (numeros[i] < 0) {

     negativos = negativos + 1;  

   } else if (numeros[i] > 0) {

     positivos = positivos + 1;  

   } else {

     zeros = zeros + 1;  

   }

 }

 positivos = positivos / quantidade;

 zeros = zeros / quantidade;

 negativos = negativos / quantidade;

 var total = [positivos, zeros, negativos];

 return total;

}

console.log (maisMenos([1,2,0,-1]))


ciciliotti: deu quase certo, mas esta dando um erro assim: i é um identificador muito curto
EymardSilva: Resposta:
var i = 0 --> altere para var intCont = 0 ou intContador = 0

Explicação:
Altere a sua variável ' i ' para iCont ou intContador ou outro identificador mais apropriado. O sentido deles é justamente te fazer pensar antes de definir apenas uma variável como i.
Como boa prática de programação, variáveis inteiras, devem preceder da palavra int. Ou seja intNomeDaVariavel - padrão camelCase.
amandasilvafreire: function maisMenos(numeros) {
 var quantidade = numeros.length
 var positivos = 0;
 var zeros = 0;
 var negativos = 0;
 var iCon = 0;

 for (var iCon = 0; iCon < quantidade; iCon++) {
  if (numeros[iCon] < 0) {
    negativos = negativos + 1;  
  } else if (numeros[iCon] > 0) {
    positivos = positivos + 1;  
  } else {
    zeros = zeros + 1;  
  }
 }
 positivos = positivos / quantidade;
 zeros = zeros / quantidade;
 negativos = negativos / quantidade;
 var total = [positivos, zeros, negativos];
 return total;
}
console.log (maisMenos([1,2,0,-1]))
respondido por: DouglasOJ
3

Resposta:

(maisMenos([1,2,0,-1]))

Explicação:

function maisMenos(numeros) {

var quantidade = numeros.length

var positivos = 0;

var zeros = 0;

var negativos = 0;

var i = 0;

for (var i = 0; i < quantidade; i++) {

 if (numeros[i] < 0) {

   negativos = negativos + 1;  

 } else if (numeros[i] > 0) {

   positivos = positivos + 1;  

 } else {

   zeros = zeros + 1;  

}

}

positivos = positivos / quantidade;

zeros = zeros / quantidade;

negativos = negativos / quantidade;

var total = [positivos, zeros, negativos];

return total;

}

console.log (maisMenos([1,2,0,-1]))


brunolouco10: o meu da dando esse erro Sua solução funcionou, mas há coisas para melhorar
Objetivos que não foram atendidos:
i é um identificador muito curto
maraeramostodosjoven: let retorno = [];
function maisMenos(arrayEntrada){
let numeroPositivos = 0;
let numeroZeros = 0;
let numeroNegativos = 0;

for(let i = 0; i < arrayEntrada.length; i++){
if(arrayEntrada[i] < 0)
numeroNegativos++;

else if(arrayEntrada[i] == 0)
numeroZeros++;

else
numeroPositivos++;
}
retorno[0] = numeroPositivos / arrayEntrada.length;
retorno[1] = numeroZeros / arrayEntrada.length;
retorno[2] = numeroNegativos / arrayEntrada.length;

return retorno;
}

console.log(maisMenos([1, 2, 0, -1]));
maraeramostodosjoven: O meu funcionou com esse.
brunolouco10: Valeu :)
Perguntas similares