Ir para conteúdo

POWERED BY:

Arquivado

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

BergWar

ler 3 numeros e exibir o segundo maior

Recommended Posts

preciso criar um algoritimo que leia 3 numeros e imprima na tela o "segundo maior" numero

tentei fazer mas minha logica esta dando erro

alguem pode me ajuda?

 

olhe minha logica:

 

#include <stdio.h>
#include <stdlib.h>


int main ()
{
    float a,b,c,r;
    
    printf("\ninforme a pontuação do 1º atleta: ");
    scanf ("%d",&a);
    printf("\ninforme a pontuação do 2º atleta: ");
    scanf ("%d",&b);
    printf("\ninforme a pontuação do 3º atleta: ");
    scanf ("%d",&c);
    if (a>b)
    {
     if (a<c)
     {
             r = a;
             printf("\npontuacao do segundo colocado: %d",r);
     }
    }
    if (b>c)
    {
     if (b<a)
     {
             r = b;
             printf("\npontuacao do segundo colocado: %d",r);
      
     }
    }        
    if (c>a)
    {
     if (c<b)
     {
             r = c;
             printf("\npontuacao do segundo colocado: %d",r);
     }
    }
    


 system ("Pause>null");
 return 0;
}
 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Encontrei dois problemas.

 

1) Você precisa decidir com qual tipo de dado vai trabalhar. Você declara as variáveis como float, mas nas funções scanf e printf utiliza inteiros. Por isso está armazenando algo completamente diferente do que foi digitado.

 

2) Sua lógica no if está incorreta. Cada if deve contemplar todas as possibilidades. Por exemplo:

if((a < b && a > c)||(a > b && a < c))
      // a é segundo maior

Essa é apenas UMA das formas que ser implementado. Existem muitas outras.

 

Dica: Utilize nomes de variáveis que tenham relação com a função da variável.

Por que ao invés de utilizar a, b e c não utiliza pontAtleta1, pontAtleta2 e pontAtleta3.

Em um programa pequeno não há prolema. Mas suponha que tenha um sistema com vários arquivos fonte, e cada um deles tem uma variável a, uma b e uma c. Vai ser bem complicado de fazer manutenção neste código...

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.