Rodrigo Araújo 0 Denunciar post Postado Maio 10, 2012 Opa galera, to empacado numa questão de algoritmo aqui, consegui resolver, mas gostaria de saber se há uma forma mais otimizada, pois meu código ficou IMENSO! a questão: Dado um conjunto contendo quatro valores (i, a, b, c), sendo i um valor inteiro, faça: se i = l, ordene em ordem crescente a,b,c se i = 2, ordene em ordem decrescente a,b,c se i = 3, informar os três valores, de forma que o maior valor entre a, b e c fique entre os outros dois. Para qualquer outro valor de i divida a soma de a, b e c pelo maior valor entre os mesmos. Compartilhar este post Link para o post Compartilhar em outros sites
Ismaeldm 5 Denunciar post Postado Maio 11, 2012 Você terá que testar qual o maior e o menor valor entre a,b,c e fazer os IFs para i... O código irá sim ficar grande de qualquer jeito, mas talvez o melhor jeito seja esse que eu mencionei acima, primeiro você ve qual é o maior e o menor valor, aí você faz com que o menor valor seja atribuido ao "c", e o maior valor seja atribuido ao "a", então o valor intermediário ficará no "b"... Após isso você faz com que o programa leia qual o valor de "i" e faça as funções... Então nesse caso: se i=1 então mostre a,b,c; se i=2 então mostre c,b,a; se i=3 então mostre b,a,c ou c,a,b; se i<1 ou i>3 então mostre (a+b+c)/a; Um exemplo para você testar o maior e o menor numero é fazer o seguinte: Crie outras 3 variáveis que repitam o valor das tres em questão, ou seja, d=a, e=b, f=c... Depois faça algo como... se b>a e b>c e c>a então "a" recebe o valor de "e", "b" recebe o valor de "f", "c" recebe o valor de "d"; vai ser meio extenso sim, mas não precisa se preocupar muito com isso, o que importa é o funcionamento :D Compartilhar este post Link para o post Compartilhar em outros sites