Ir para conteúdo

Arquivado

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

Regis Yamamoto

Imprimir em ordem decrescente.

Recommended Posts

Olá. Estou fazendo um exercício em um curso de PHP. O exercício diz: "faça um programa que pergunte três números para o usuário, e imprima na tela os três números em ordem decrescente".

Alguém pode me ajudar como fazer isso em PHP?

 

ex: o usuário digitaria por exemplo os números 6 9 2, e o programa teria que retornar nesse caso os números 9 6 2.

 

Desde já muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê uma pesquisada antes

Há inúmeros sites mostrando como resolver esses exercícios básicos de Lógica

 

Veja alguns deles

Então, eu dei uma pesquisada sim antes de postar essa pergunta, mas mesmo assim não estou conseguindo fazer o algoritmo funcionar. Sei que para a maioria isso pode ser uma pergunta medíocre, mas é importante pra eu resolver esse algoritmo. Se alguém puder me ajudar ficarei grato.^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu dei uma pesquisada sim antes de postar essa pergunta, mas mesmo assim não estou conseguindo fazer o algoritmo funcionar. Sei que para a maioria isso pode ser uma pergunta medíocre, mas é importante pra eu resolver esse algoritmo. Se alguém puder me ajudar ficarei grato.^^

Fiz o algoritmo dessa forma e não funcionou.

 

<body>
<form method="post" action="#">
1°número <input type="number" name="num1"/><br />
2°número <input type="number" name="num2"/><br />
3°número <input type="number" name="num3"/><br /><br />
<input type="submit" value="submit" /><br /><br />
</form>
<?php
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$num3 = $_POST['num3'];
if (($num1<$num2) && ($num2<$num3)) {
echo "Os três números na ordem decrescente é $num3, $num2 e $num1.";
}
elseif (($num1<$num3) && ($num3<$num2)) {
echo "Os três números na ordem decrescente é $num2, $num3 e $num1.";
}
elseif (($num2<$num1) && ($num1<$num3)) {
echo "Os três números na ordem decrescente é $num3, $num1 e $num2.";
}
elseif (($num2<$num3) && ($num3<$num1)) {
echo "Os três números na ordem decrescente é $num1, $num3 e $num2.";
}
elseif (($num3<$num1) && ($num1<$num2)) {
echo "Os três números na ordem decrescente é $num1, $num3 e $num2.";
}
elseif (($num2<$num1) && ($num3<$num2)) {
echo "Os três números na ordem decrescente é $num1, $num2 e $num3.";
}
elseif (($num1<$num2) && ($num3<$num2)) {
echo "Os três números na ordem decrescente é $num2, $num1 e $num3.";
}
?>
</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer da seguinte forma,

Em vez de passar para variáveis os valores do $_POST:

// Ele vai ordenar o array $_POST pelos valores do Maior > para o Menor
arsort($_POST);

caso tenha outros dados no POST que não eram pra ser ordenados junto, passe para outro array antes e depois

use a função arsort:

$numeros_ordenar = array( $_POST['num1'], $_POST['num2'], $_POST['num3']);
arsort($numeros_ordenar);

Agora se for fazer na mão procure por 'algoritmos de ordenação' e dê uma olhada em como eles funcionam, existem diversos, uns mais rápidos ou muito lentos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer da seguinte forma,

Em vez de passar para variáveis os valores do $_POST:

// Ele vai ordenar o array $_POST pelos valores do Maior > para o Menor
arsort($_POST);

caso tenha outros dados no POST que não eram pra ser ordenados junto, passe para outro array antes e depois

use a função arsort:

$numeros_ordenar = array( $_POST['num1'], $_POST['num2'], $_POST['num3']);
arsort($numeros_ordenar);

Agora se for fazer na mão procure por 'algoritmos de ordenação' e dê uma olhada em como eles funcionam, existem diversos, uns mais rápidos ou muito lentos.

Vou estudar a função arsort. Nunca tinha ouvido falar. Muito obrigado ^^.

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.