- Faça um programa que receba um vetor com
números. Depois, realize as seguintes operações na sequência:
a. Imprima o vetor preenchido
b. Digite um número
, 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
a. Imprima o vetor preenchido
b. Digite um número
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
, depois execute, em ordem:
. imprimir o vetor original;
. ler um número
e informar se ele existe no vetor;
. ler um número
e, se ele não existir no vetor, substituir todas as ocorrências de
por
;
. imprimir o vetor modificado.
Para resolver, vamos usar vetores, laços de repetição e variáveis booleanas para sinalizar buscas.
Para resolver, vamos usar vetores, laços de repetição e variáveis booleanas para sinalizar buscas.
Passo 2
Ler o tamanho do vetor
e preencher o vetor com um laço
Imprimir o vetor original percorrendo-o com outro 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 , marque
o número
Ler o valor de . Para verificar se
existe, use um laço e variável booleana , faça a atribuição desse elemento para
.
for
e use uma variável booleana existeX
. Se encontrar algum elemento igual a
existeX \(=\) true
. Depois do laço, se existeX
for true
, exibao número
"o número <x> existe"
.Ler o valor de
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
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;
}