Eliminação de duplicatas. Use um array de subscrito único para resolver o problema a seguir. Leia 20 números, cada um entre 10 e 100, inclusive. À medida que cada número for lido, imprima-o apenas se ele não for uma duplicata de um número já lido. Considere a ‘pior das hipóteses’: os 20 números são diferentes. Use o menor array possível para resolver esse problema.

Passo 1

Fala Galera!! Bora para mais um exercício.

O nosso programa irá precisar pedir para o usuário entrar com 20 valores, e cada um deve estar entre 10 e 100. Podemos usar uma estrutura de repetição para fazer esse processo de ler os 20 números.

Em seguida, teremos que verificar se algum dos números inseridos pelo usuário é duplicado. Caso seja duplicado não iremos inserir ele na nossa array de resposta, que irá armazenar somente os valores não duplicados. Quando o numero não for duplicado, então ele será inserido na array. Terminado esse processo o programa irá exibir a array com todos os números não duplicados.

Passo 2

Para conseguir realizar essa lógica nosso programa vai precisar de algumas variáveis auxiliares. Que serão:

#include

#define MAX 20

int main()

{

int a[ MAX ] = {0}; /* array para entrada dos valores */

int i;/* contador de laço */

int j;/* contador de laço */

int k = 0; /* número de valores atualmente introduzidos */

int duplicate; /* varviavel aux para valores duplicados */

int valor; /* valor atual */

Passo 3

Essas variáveis irão dentro das estruturas de repetições. Ficando da seguinte forma:

printf("Entre com os 20 inteiros entre 10 e 100:\n" );

/* obter 20 números inteiros do usuario */

for ( i = 0; i

duplicate = 0;

scanf("%d", &valor);

/* teste se o número inteiro for um duplicado */

for ( j = 0; j

/* se duplicado, quebrar laço */

if(valor == a[j] ){

duplicate = 1;

break;

} /* fim do if */

} /*fim do for */

/* se o número não for um duplicado introduza-o no array*/

if ( !duplicate ){

a[ k++ ] = valor;

} /*fim do if */

} /* fim do for */

Essa parte do código, é responsável por ler os valores e também verificar quais deles são duplicados e armazenar na array.

Passo 4

E agora por último, vamos exibir nosso array com os valores não duplicado. Ficará da seguinte forma:

printf("\n Os valores não duplicados são: \n");

/* mostrar array de não duplicados */

for( i = 0; a[ i ] != 0; i++){

printf("%d ", a[ i ]);

} /* fim do for */

printf("\n");

return 0;

}

Feito isso, está finalizado nosso programa. Só juntar tudo e sucesso Galera!! E bora pro próximo exercício.

Resposta

O programa final será:

A saída: