Valores mais parecidos

7 respostas
ASHAMM

Olá,
Como é que eu posso pegar num vetor e verificar qual o numero mais perto do meu. Por exemplo: tenho um vetor com os seguintes numeros: 20, 50, 45, 10, 5, 15.
Como faço para o programa retornar o valor 15 para o numero mais perto do 11?

7 Respostas

Rodrigo_Void

Vai testando subtraindo seu numero pela posição, o menor resultado é o mais próximo.

ASHAMM

como assim?

Rodrigo_Void

20 - 11 = 9
50 - 11 = 41
45 - 11 = 34
10 - 11 = -1
5 - 11 = -6
15 - 11 = 4

q lógica vc pode tirar disso?

ASHAMM

mas como guardo esses valores de forma a conseguir pegar no mais pequeno?

FearX

Você guarda o resultado numa variável. Se o próximo resultado das subtrações for menor que o valor da variável, você atualiza o valor da variável.

ASHAMM

e como guardo a posição dele no vetor? preciso dela dps

FearX

Imagine que você tenha essa sequência de números no seu vetor:

20
50
45
10
5
15

E você digitou o número 25.

O que você tem que fazer, de forma prática:

Criar uma estrutura de repetição que subtraia o número digitado dos números do vetor.
Assim sendo:

20 - 25 = 5
50 - 25 = 25
45 - 25 = 20
10 - 25 = 15
5 - 25 = 20
15 - 25 = 10

Desconsidere valores positivos e negativos, estamos tratando de "quantas unidades de distância tem entre o número no vetor e o número digitado.

Ao mesmo tempo que você cria essa estrutura, você cria uma variável que vai receber o valor da subtração e outra variavel que vai receber a POSIÇÃO do Array onde está contido o valor que originou a subtração. Isso é uma condição IF, é só pensar um pouquinho que você vai conseguir. Só atualize esses valores se o resultado da subtração for MENOR que o valor da variável que contem o resultado da subtração.

Criado 18 de dezembro de 2018
Ultima resposta 18 de dez. de 2018
Respostas 7
Participantes 3