Trabalhando com estrutura condicional simples

7 respostas
DavidUser

Estou com um exercício para resolver sobre estrutura condicional simples, sei trabalhar muito bem com esturura condicional composta mais com as limitações que me foram impostas creio difício uma solução eficiente:

Problema:
Dados 4 numero inteiros imprimir a soma dos 3 menores

Restrições (só se pode usar):
Estrutura sequencial simples
Estrutura condicional simples

O meu programa ficou assim e pesso sugestões para melhor eficiência:
somaDosMenores = numero1 + numero2 + numero3 + numero4;

    if (numero1 > numero2) {
        if (numero1 > numero3){
            if (numero1 > numero4){
                somaDosMenores -= numero1;
            }
        }
    }
    if (numero2 > numero1) {
        if (numero2 > numero3){
            if (numero2 > numero4){
                somaDosMenores -= numero2;
            }
        }
    }
    if (numero3 > numero1) {
        if (numero3 > numero2){
            if (numero3 > numero4){
                somaDosMenores -= numero3;
            }
        }
    }
    if (numero4 > numero1) {
        if (numero4 > numero2){
            if (numero4 > numero3){
                somaDosMenores -= numero4;
            }
        }
    }
Não possui erros de lógica mas ainda é enorme pra algo muito simples

7 Respostas

Frantic_Avenger
Bom a idéia que tive foi...
maior = num1
if (num2 > maior) {
	maior = num2;
	}
if (num3 > maior) {
	maior = num3;
	}
if (num4 > maior) {
	maior = num4;
	}
	
resultado = num1 + num2 + num3 + num4 - maior;

Editado 1ª linha de código:
De maior > num1
Para maior = num1;

rogelgarcia

O que quer dizer com

Estrutura sequencial simples
Estrutura condicional simples

?

DavidUser

estrutura sequencial usa openações matemáticas e
estrutura condicional simples usa apenas o comando “if”

DavidUser

"Frantic" Ideia simples e perfeita,
mesmo precisando de mais uma variável é ótima!

Muito Obrigado.

Fazendo umas melhoras pra não usar mais uma variavel ficou assim
somaDosMenores = - numero1;
    if (- numero2 < somaDosMenores)
        somaDosMenores = - numero2;
    if (- numero3 < somaDosMenores)
        somaDosMenores = - numero3;
    if (- numero4 < somaDosMenores)
        somaDosMenores = - numero4;

    somaDosMenores += numero1 + numero2 + numero3 + numero4;
rogelgarcia

Muito bem raciocinado mesmo

DavidUser

editei meu código as 17:41:45, para correto calculo quando dados numeros inteiros negativos

Frantic_Avenger
DavidUser:
"Frantic" Ideia simples e perfeita, mesmo precisando de mais uma variável é ótima!

Muito Obrigado.

Fazendo umas melhoras pra não usar mais uma variavel ficou assim
somaDosMenores = - numero1;
    if (- numero2 < somaDosMenores)
        somaDosMenores = - numero2;
    if (- numero3 < somaDosMenores)
        somaDosMenores = - numero3;
    if (- numero4 < somaDosMenores)
        somaDosMenores = - numero4;

    somaDosMenores += numero1 + numero2 + numero3 + numero4;

Vlw. Mas na hora que eu preciso essas idéias não surgem :lol:. E tbm boa a sua idéia da variável somaDosMenores. Flw.

Criado 25 de março de 2010
Ultima resposta 26 de mar. de 2010
Respostas 7
Participantes 3