Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Susuh

Problema números trocados..

Recommended Posts

Questão:

Leia um vetor com n elementos (informado pelo usuário). A seguir, troque o primeiro elemento com o último, o

segundo com o penúltimo, etc, até o décimo com o décimo primeiro.

 

Pessoal, ajudinha aii... :S

 

Obs: É no visualg (portugol)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhe, você precisa criar duas variáveis de controle: um que sobe e outra que desce os índices do vetor.

 

No primeiro loop você lê o que o usuários digita, mas como são N elementos, ele precisa informar o tanto que elementos que quer inserir. Apenas leia N, faça um loop que percorra de 0 até N. Eu fiz o código e PHP, mas acho que dá para entender perfeitamente a lógica:

 

<?php

$v = array(1,7,8,2,6,9,0);
$y = sizeof($v) - 1; // aqui pegamos o tamanho do vetor menos um, pois não podemos vazar
for ($i = 0; $i <= round($y/2); $i++) { // o loop vai só até o meio do vetor, pois a outra variável de controle $y percorrerá de trás para frente, o round() é para arredondar para cima
	$aux = $v[$i];
	$v[$i] = $v[$y];
	$v[$y] = $aux; // aqui é uma simples troca de posição
	$y--; // é por isso que percorremos até a metade, pois essa variável aqui vai se decrementando dentro do mesmo loop
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Eliseu M.

 

Para otimizar ainda mais o código (se é que vale a pena pensar em performance em casos como este), não precisaríamos desta variável auxiliar.

 

$aux;

 

Utilize simplesmente a troca de valores para acessar menos dados da memória:

 

$v[$i] = $v[$i] + $v[$y];
$v[$y] = $v[$i] - $v[$y];
$v[$i] = $v[$i] - $v[$y] 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.