Faça um programa que leia um vetor de 10 posições e verifique se existem valores iguais e os escreva na tela.

Passo 1

Resumo do problema: devemos criar um programa que leia 10 valores inteiros em um vetor e verifique se existem valores repetidos, imprimindo cada valor duplicado apenas uma vez. O conteúdo envolve uso de vetores e laços de repetição.

Passo 2

Leitura do vetor: usamos um laço for de 0 até 9 para ler cada elemento com scanf e armazenar em um array de tamanho 10.
Detecção de duplicatas: percorremos o vetor com dois laços aninhados (índices i e j, com j iniciando em i+1) e comparamos v[i] e v[j]. Quando encontramos igualdade, sinaliza-se um possível duplicado.

Passo 3

Evitar impressões repetidas: para garantir que cada valor duplicado só seja impresso uma vez, mantemos um vetor auxiliar dup[] e um contador dcount. Antes de imprimir um valor repetido, verificamos se ele já está em dup[]; se não estiver, adicionamos e imprimimos.
Exibição do resultado: após comparar todos os pares, se dcount for zero, exibimos mensagem informando que não há valores iguais; caso contrário, já mostramos cada duplicata durante a detecção.

Resposta

#include <stdio.h>
#define N 10
int main() {
int v[N], dup[N], dcount = 0;
int i, j, k, isNew;
// Leitura do vetor de 10 elementos
for (i = 0; i < N; i++) {
    printf("Digite o elemento %d: ", i + 1);
    scanf("%d", &v[i]);
}

printf("\nValores iguais encontrados:\n");

// Comparação para encontrar duplicatas
for (i = 0; i < N - 1; i++) {
    for (j = i + 1; j < N; j++) {
        if (v[i] == v[j]) {
            // Verifica se já imprimimos esse valor antes
            isNew = 1;
            for (k = 0; k < dcount; k++) {
                if (dup[k] == v[i]) {
                    isNew = 0;
                    break;
                }
            }
            // Se for um duplicado novo, armazena e imprime
            if (isNew) {
                dup[dcount++] = v[i];
                printf("%d\n", v[i]);
            }
        }
    }
}

// Se não encontrou nenhum duplicado
if (dcount == 0) {
    printf("Nenhum valor igual encontrado.\n");
}

return 0;
}

Exercícios relacionados