Três números (ordem crescente) (5 Soluções)

[C]/*
* SOLUCAO 1. Simples, curta e grossa.
*
*/
#include <stdio.h>

int main()
{
int n1, n2, n3; /* dados de entrada */

printf(“Digite tres numeros: “);
scanf(“%d %d %d”, &n1, &n2, &n3);

/* Existem 6 possiveis ordens para imprimior os numeros lidos */
if (n1 <= n2 && n2 <= n3)
{
printf(“A ordem crescente: %d %d %dn”, n1, n2, n3);
}
else if (n1 <= n3 && n3 <= n2)
{
printf(“A ordem crescente: %d %d %dn”, n1, n3, n2);
}
else if (n2 <= n1 && n1 <= n3)
{
printf(“A ordem crescente: %d %d %dn”, n2, n1, n3);
}
else if (n2 <= n3 && n3 <= n1)
{
printf(“A ordem crescente: %d %d %dn”, n2, n3, n1);
}
else if (n3 <= n1 && n1 <= n2)
{
printf(“A ordem crescente: %d %d %dn”, n3, n1, n2);
}
else /* n3 <= n2 && n2 < n1 */
{
printf(“A ordem crescente: %d %d %dn”, n3, n2, n1);
}

return 0;
}

/*
* SOLUCAO 2.
*
*/

#include <stdio.h>

int main() {
int n1, n2, n3; /* dados de entrada */

printf(“Digite tres numeros: “);
scanf(“%d”, &n1);
scanf(“%d”, &n2);
scanf(“%d”, &n3);

if (n3 > n1)
if (n1 > n2)
printf(“A ordem crescente: %d %d %dn”, n2, n1, n3);
else if (n2 < n3)
printf(“A ordem crescente: %d %d %dn”, n1, n2, n3);
if (n1 > n2)
if (n2 > n3)
printf(“A ordem crescente: %d %d %dn”, n3, n2, n1);
else if (n3 < n1)
printf(“A ordem crescente: %d %d %dn”, n2, n3, n1);
if (n1 < n2)
if (n3 < n1)
printf(“A ordem crescente: %d %d %dn”, n3, n1, n2);
else if (n3 < n2)
printf(“A ordem crescente: %d %d %dn”, n1, n3, n2);

return 0;
}

/*
* SOLUCAO 3. Igual a solucao 2 com alguns parenteses superfluos que
* devem ajudar a leitura do programa (evitar ambiguida).
*
*/

#include <stdio.h>

int main()
{
int n1, n2, n3; /* dados de entrada */

printf(“Digite tres numeros: “);
scanf(“%d”, &n1);
scanf(“%d”, &n2);
scanf(“%d”, &n3);

if (n3 > n1)
{
if (n1 > n2)
{
printf(“A ordem crescente: %d %d %dn”, n2, n1, n3);
}
else
{
if (n2 < n3)
{
printf(“A ordem crescente: %d %d %dn”, n1, n2, n3);
}
}
}

if (n1 > n2)
{
if (n2 > n3)
{
printf(“A ordem crescente: %d %d %dn”, n3, n2, n1);
}
else
{
if (n3 < n1)
{
printf(“A ordem crescente: %d %d %dn”, n2, n3, n1);
}
}
}

if (n1 < n2)
{
if (n3 < n1)
{
printf(“A ordem crescente: %d %d %dn”, n3, n1, n2);
}
else
{
if (n3 < n2)
{
printf(“A ordem crescente: %d %d %dn”, n1, n3, n2);
}
}
}
return 0;
}

/*
* SOLUCAO 4. Parecida com a solucao 1. Usa condicoes simples,
* ou seja, sem && e ||.
*
*/

#include <stdio.h>

int main()
{
int n1, n2, n3; /* dados de entrada */

printf(“Digite tres numeros: “);
scanf(“%d %d %d”, &n1, &n2, &n3);

/* Existem 6 possiveis ordens para imprimior os numeros lidos */
if (n1 <= n2)
{ /* n1 <= n2 */
if (n2 <= n3)
{ /* n1 <= n2 e n2 <= n3 */
printf(“A ordem crescente: %d %d %dn”, n1, n2, n3);
}
else
{ /* n1 <= n2 e n3 < n2 */
if (n1 <= n3)
{ /* n1 <= n3 e n3 < n2 */
printf(“A ordem crescente: %d %d %dn”, n1, n3, n2);
}
else
{ /* n3 < n1 e n1 <= n2 */
printf(“A ordem crescente: %d %d %dn”, n3, n1, n2);
}
}
}
else
{ /* n2 < n1 */
if (n1 <= n3)
{ /* n2 < n1 e n1 <= n3 */
printf(“A ordem crescente: %d %d %dn”, n2, n1, n3);
}
else
{ /* n2 < n1 e n3 < n1 */
if (n2 <= n3)
{ /* n2 <= n3 e n3 < n1 */
printf(“A ordem crescente: %d %d %dn”, n2, n3, n1);
}
else
{ /* n3 < n2 e n2 < n1 */
printf(“A ordem crescente: %d %d %dn”, n3, n2, n1);
}
}
}

return 0;
}

/*
* SOLUCAO 5. Variante da solucao 4. Usa condicoes simples,
* ou seja, sem && e ||.
*
*/

#include <stdio.h>

int main()
{
int n1, n2, n3; /* dados de entrada */
int aux; /* auxiliar para troca de conteudod e variveis */
printf(“Digite tres numeros: “);
scanf(“%d %d %d”, &n1, &n2, &n3);

/* Forca que n1 <= n2 */

if (n1 > n2)
{
/* troca o conteudo das variaveis n1 e n2 */
aux = n1;
n1 = n2;
n2 = aux;
}

/* Neste ponto do programa vale que n1 <= n2 */
if (n2 <= n3)
{ /* n1 <= n2 e n2 <= n3 */
printf(“A ordem crescente: %d %d %dn”, n1, n2, n3);
}
else
{ /* n1 <= n2 e n3 < n2 */
if (n1 <= n3)
{ /* n1 <= n3 e n3 < n2 */
printf(“A ordem crescente: %d %d %dn”, n1, n3, n2);
}
else
{ /* n3 < n1 e n1 <= n2 */
printf(“A ordem crescente: %d %d %dn”, n3, n1, n2);
}
}
return 0;
}
[/C]

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *