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:
