Ache os dois maiores números. Usando uma técnica semelhante à do Exercício 3.24, ache os dois maiores valores dos 10 números. [Nota: você poderá informar cada número apenas uma vez.]
Passo 1
Fala Galera!!! Tudo certo? Espero que sim!!! Bora para mais um exercício.
Vamos escrever um programa que seja capaz de ler vários números inteiros e retornar qual o maior e o segundo maior numero entre eles. Será usado um laço de repetição para que seja possível inserir até 10 números inteiros para realizar a verificação.
Passo 2
Escrevendo o programa:
#include
int main()
{
int counter; /* contador para 10 repetições */
int number;
/* entrada do número atual */
int largest;
/* maior número encontrado */
int secondLargest = 0; /* segundo maior número encontrado */
printf("Digite o primeiro numero: ");
/* pega o primeiro numero */
scanf( "%d", &largest );
counter = 2;
/* loop mais 9 vezes */
while ( counter
printf("Digite o proximo numero: "); /* prompt para o próximo número */
scanf( "%d", &number );
/* se o número atual for maior que o maior */
if ( number > largest ) {
/* atualiza o segundo maior com o maior anterior */
secondLargest = largest;
/* atualiza o maior com o número atual */
largest = number;
} /* end if */
else {
/* se o número estiver entre o segundoLargest e o maior */
if ( number > secondLargest ) {
secondLargest = number;
} /* end if */
} /* end else */
++counter;
} /* end while */
/* exibe os dois maiores números */
printf( "O maior e %d\n", largest );
printf( "O segundo maior e %d\n", secondLargest );
return 0;
} /* end main */
Passo 3
A saída será:

E assim finalizamos mais um exercício!!! Até o próximo galera!!
Resposta
#include
int main()
{
int counter; /* contador para 10 repetições */
int number;
/* entrada do número atual */
int largest;
/* maior número encontrado */
int secondLargest = 0; /* segundo maior número encontrado */
printf("Digite o primeiro numero: ");
/* pega o primeiro numero */
scanf( "%d", &largest );
counter = 2;
/* loop mais 9 vezes */
while ( counter
printf("Digite o proximo numero: "); /* prompt para o próximo número */
scanf( "%d", &number );
/* se o número atual for maior que o maior */
if ( number > largest ) {
/* atualiza o segundo maior com o maior anterior */
secondLargest = largest;
/* atualiza o maior com o número atual */
largest = number;
} /* end if */
else {
/* se o número estiver entre o segundoLargest e o maior */
if ( number > secondLargest ) {
secondLargest = number;
} /* end if */
} /* end else */
++counter;
} /* end while */
/* exibe os dois maiores números */
printf( "O maior e %d\n", largest );
printf( "O segundo maior e %d\n", secondLargest );
return 0;
} /* end main */