1. Faça um programa que receba um vetor com N números. Depois, realize as seguintes operações na sequência:
    a. Imprima o vetor preenchido
    b. Digite um número x, se este número existir diga “o número <número> existe”
    c. Digite um número y, se este número não existir no vetor, substitua x por y
    d. Imprima novamente o vetor

Passo 1

O enunciado pede um programa que leia um vetor de tamanho N, depois execute, em ordem:
1. imprimir o vetor original;
2. ler um número x e informar se ele existe no vetor;
3. ler um número y e, se ele não existir no vetor, substituir todas as ocorrências de x por y;
4. imprimir o vetor modificado.
Para resolver, vamos usar vetores, laços de repetição e variáveis booleanas para sinalizar buscas.

Passo 2

Ler o tamanho do vetor N e preencher o vetor com um laço for.
Imprimir o vetor original percorrendo-o com outro laço for e exibindo cada elemento.

Passo 3

Ler o valor de . Para verificar se existe, percorra o vetor com um laço for e use uma variável booleana existeX. Se encontrar algum elemento igual a , marque existeX \(=\) true. Depois do laço, se existeX for true, exiba
o número "o número <x> existe".
Ler o valor de . Para verificar se existe, use um laço e variável booleana existeY de forma análoga. Se após o laço existeY for false, percorra novamente o vetor e, em cada posição onde o valor seja igual a , faça a atribuição desse elemento para .

Passo 4

Imprimir o vetor final usando mais um laço for.

Resposta

#include <stdio.h>
#include <stdbool.h>

int main() {
    int N;
    scanf("%d", &N);
    int v[N];
    for(int i = 0; i < N; i++) {
        scanf("%d", &v[i]);
    }

    // a. Imprime vetor original
    for(int i = 0; i < N; i++) {
        printf("%d ", v[i]);
    }
    printf("\n");

    // b. Lê x e verifica existência
    int x;
    scanf("%d", &x);
    bool existeX = false;
    for(int i = 0; i < N; i++) {
        if(v[i] == x) {
            existeX = true;
            break;
        }
    }
    if(existeX) {
        printf("o número %d existe\n", x);
    }

    // c. Lê y e, se não existir, substitui x por y
    int y;
    scanf("%d", &y);
    bool existeY = false;
    for(int i = 0; i < N; i++) {
        if(v[i] == y) {
            existeY = true;
            break;
        }
    }
    if(!existeY) {
        for(int i = 0; i < N; i++) {
            if(v[i] == x) {
                v[i] = y;
            }
        }
    }

    // d. Imprime vetor modificado
    for(int i = 0; i < N; i++) {
        printf("%d ", v[i]);
    }
    printf("\n");

    return 0;
}

Exercícios relacionados