Implemente um programa em C que leia via teclado os elementos de um vetor de TAM posições de forma a permitir apenas a inserção de valores distintos. Caso o usuário tente inserir um valor já existente, o programa deve alertar a duplicidade e solicitar um novo valor.

Passo 1

Beleza, vamos lá! O que precisamos fazer aqui é criar um programa em C que lê elementos para um vetor com um tamanho definido, chamado de TAM. A grande ideia é garantir que cada valor inserido seja único, ou seja, que não tenha repetições. Se o usuário tentar inserir um valor que já existe no vetor, o programa deve avisar sobre a duplicidade e pedir para inserir outro valor. Para resolver isso, vamos precisar entender como trabalhar com vetores, laços de repetição e condições em C.

Passo 2

Primeiro, vamos declarar as variáveis que vamos usar. Precisamos de:
  • Um vetor para armazenar os números inseridos.
  • Uma variável para armazenar o tamanho do vetor (TAM).
  • Variáveis auxiliares para receber o número a ser inserido e para verificar duplicidades.
Aqui está como podemos declarar isso em C:
#include <stdio.h>

#define TAM 10 // Define o tamanho do vetor

int main() {
    int vetor[TAM];
    int numero, i, j, duplicado;
    // ... (continua nos próximos passos)
}

Passo 3

Agora, vamos pedir para o usuário inserir os valores no vetor. Vamos usar um laço for para iterar de 0 até TAM - 1. Dentro desse laço, vamos ler um número e verificar se ele já existe no vetor.
    for(i = 0; i < TAM; i++) {
        do {
            duplicado = 0; // Assume que não há duplicado
            printf("Digite o %dº número: ", i + 1);
            scanf("%d", &numero);
            
            // Verifica se o número já existe no vetor
            for(j = 0; j < i; j++) {
                if(vetor[j] == numero) {
                    duplicado = 1;
                    printf("Número já existe! Por favor, insira um valor diferente.\n");
                    break;
                }
            }
        } while(duplicado); // Repete se encontrou duplicado
        
        vetor[i] = numero; // Insere o número no vetor
    }

Passo 4

Depois de preencher o vetor sem duplicatas, vamos mostrar os números inseridos para o usuário conferir. Podemos usar outro laço for para isso.
    printf("\nVetor final sem duplicatas:\n");
    for(i = 0; i < TAM; i++) {
        printf("%d ", vetor[i]);
    }
    
    return 0;
}

Resposta

Pronto! Com esses passos, o programa em C solicita que o usuário insira números em um vetor de tamanho TAM, garantindo que cada valor seja único. Se o usuário tentar inserir um número que já existe no vetor, o programa avisa sobre a duplicidade e pede para inserir outro valor. Aqui está o código completo:
#include <stdio.h>

#define TAM 10 // Define o tamanho do vetor

int main() {
    int vetor[TAM];
    int numero, i, j, duplicado;

    for(i = 0; i < TAM; i++) {
        do {
            duplicado = 0; // Assume que não há duplicado
            printf("Digite o %dº número: ", i + 1);
            scanf("%d", &numero);
            
            // Verifica se o número já existe no vetor
            for(j = 0; j < i; j++) {
                if(vetor[j] == numero) {
                    duplicado = 1;
                    printf("Número já existe! Por favor, insira um valor diferente.\n");
                    break;
                }
            }
        } while(duplicado); // Repete se encontrou duplicado
        
        vetor[i] = numero; // Insere o número no vetor
    }

    printf("\nVetor final sem duplicatas:\n");
    for(i = 0; i < TAM; i++) {
        printf("%d ", vetor[i]);
    }
    
    return 0;
}
Esse programa vai garantir que todos os números no vetor sejam distintos, seguindo os critérios do exercício. Experimente rodar e testar com diferentes entradas para ver como funciona!

Exercícios relacionados