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 */