Ir ao conteúdo

Os dois maiores numeros


Ir à solução Resolvido por Midori,

Posts recomendados

Postado
Me ajudem a fazer esse algotimo eu ainda sou iniciante em C...

 

 



#include<stdio.h>


/**Algoritimo digite 10 numeros e encontre os dois maiores numeros :**/


int main()
{
   int number;
   int i;
   int maior1 = 0;
   int maior2 = 0;


   for( i = 0; i < 10; i++ )
   {
         printf("Digite o valor :");
         scanf("%d",&number);


         if( number > maior1 ){
           maior1 = number;
         }


         if( maior2 < maior1 ){
            maior2 = number;
         }


   }


   printf("O primeiro maior numero e: %d\n", maior1);
   printf("O segundo maior numero e: %d\n", maior2);


 return 0;
}

Postado

Não entendi qual o problema, mas pode tentar isto. 

if( number > maior1 ){      maior1 = number;      continue;} if( number < maior1 && number > maior2 ){      maior2 = number;      continue;}
Postado
1 - O processo de encontrar o maior número (i.e., o máximo de um conjunto de números) é usado
freqüentemente em aplicações computacionais. Por exemplo, um programa que determinasse o
vencedor de um concurso de vendas receberia o número de unidades vendidas por vendedor. O
vendedor que tivesse vendido mais unidades venceria o concurso. Escreva um pseudocódigo e
depois um programa em C que receba uma série* de 10 números, determine o maior deles e o
imprima. Sugestão: Seu programa deve usar três variáveis da seguinte maneira:
contador: Um contador para contar até 10 (i.e., para controlar quantos números foram
fornecidos e
para determinar quando todos os 10 números foram processados),
num: O número atual fornecido ao programa,
maior: O maior número encontrado em cada instante.

 

 

2 - Usando um método similar ao do Exercício 3.24, encontre os dois maiores valores
de 10 números. Nota: Cada número só pode ser fornecido uma única vez.
 
 
Então o Algoritmo Ainda não esta pronto testei o que você me enviou....
Postado

@Mileni

 

Fiz uma alteração no código, para funcionar com 3 números e indicar o maior e o segundo maior

em uma série de números ordenados.

 

O código modificado:

#include<stdio.h>#include<stdlib.h>/**Algoritimo digite 10 numeros e encontre os dois maiores numeros :**/ int main(){   int number[3];   int i;   int aux = 0;   int maior1 = 0;   int maior2 = 0;    for( i = 0; i < 4; i++ )   {         printf("Digite o valor :");         scanf("%d",&number[i]);          if(number[i] > number[i-1]){           maior1 = number[i];         }                  if(number[i] > number[i+1]){           maior2 = number[i];         }            }    printf("O primeiro maior numero e: %d\n", maior1);   printf("O segundo maior numero e: %d\n", maior2);   system("pause");  return 0;}

A imagem da tela de saída:

 

post-288378-0-26902700-1389463839_thumb.

 

Agora.. o que você precisa fazer:

  • Aumentar de 3 números para 10
  • Fazer com que números não ordenados funcionem.

    Exemplo: 1-2-5-8 é ordenado, e indica resposta correta.
    Exemplo: 8-7-1-4 não é ordenado,agora você vai precisar pensar
    na lógica para que séries como esta funcionem  ;)

Abraços.

  • Solução
Postado

Fiz uma pequena alteração no seu código, segue

if( number > maior1 ){    if(maior1 > maior2){        maior2 = maior1;    }    maior1 = number;}if( number > maior2 && number != maior1 ){    maior2 = number;}
Postado

Poderia meter um tratamento para a sequência:

 

-1

-1

-1

2

2

 

por exemplo, considerando apenas 5 números.

 

 

[]'s

LNW

  • 2 anos depois...
Postado

///Retornando os dois maior valor digitado.

 

int main(int argc, char** argv) {
    int number;

   int i;

   int maior1 = 0;

   int maior2 = 0;

   for( i = 0; i < 5; i++ )

   {

         printf("Digite o valor :");

         scanf("%d",&number);


        if(number > maior1){
            if(maior1> maior2){
                maior2=maior1;
            }
            maior1=number;
        }
        if(maior1>=maior2 && number != maior1){
            if(number > maior2){
                maior2=number;
            }
        }

   }

   printf("O primeiro maior numero e: %d\n", maior1);

   printf("O segundo maior numero e: %d\n", maior2);

    return 0;
}

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!