Faça um programa que leia um número Ne :
- Crie dinamicamente e leia um vetor de inteiro de
posições;
- Leia um número inteiro X e conte e mostre os múltiplos desse número que existem no vetor.
Passo 1
Resumo do enunciado: precisamos ler um número inteiro Ne, criar dinamicamente um vetor de inteiros de tamanho Ne, preencher esse vetor com valores lidos, ler um inteiro X e, por fim, contar e mostrar todos os múltiplos de X que aparecem no vetor.
Passo 2
Para alocar o vetor dinamicamente em C, vamos usar a função malloc. Precisamos incluir <stdlib.h> para isso. A ideia é reservar Ne × sizeof(int) bytes.
Depois de alocar, percorremos o vetor com um laço for de 0 até Ne–1, lendo cada elemento com scanf e armazenando em v[i].
Em seguida, lemos o inteiro X com scanf.
Depois de alocar, percorremos o vetor com um laço for de 0 até Ne–1, lendo cada elemento com scanf e armazenando em v[i].
Em seguida, lemos o inteiro X com scanf.
Passo 3
Agora inicializamos um contador cont = 0 e fazemos outro for de 0 até Ne–1. A cada elemento v[i], testamos se v[i] % X == 0. Se for, imprimimos v[i] e incrementamos cont.
No final, imprimimos o total de múltiplos cont encontrados.
No final, imprimimos o total de múltiplos cont encontrados.
Passo 4
Por fim, liberamos a memória alocada com free(v) e encerramos o programa.
Resposta
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
int main() {
int Ne;
scanf("%d", &Ne);
int Ne;
scanf("%d", &Ne);
int *v = (int *)malloc(Ne * sizeof(int));
if (v == NULL) {
printf("Erro de alocação\n");
return 1;
}
for (int i = 0; i < Ne; i++) {
scanf("%d", &v[i]);
}
int X;
scanf("%d", &X);
int cont = 0;
printf("Múltiplos de %d:\n", X);
for (int i = 0; i < Ne; i++) {
if (v[i] % X == 0) {
printf("%d\n", v[i]);
cont++;
}
}
printf("Total de múltiplos = %d\n", cont);
free(v);
return 0;
}