Escrever uma função int pares(int
, int
, int
), que recebe como parâmetros um vetor (
) e seu tamanho (
), determina o vetor
e retorna o tamanho de
. 0 vetor
deve conter apenas os valores pares presentes no vetor
. Testar a função para vetores
gerados aleatoriamente.
Passo 1
Resumindo o que temos: queremos escrever uma função em C chamada pares que receba um vetor v de tamanho n e um vetor w vazio, preencha w só com os elementos pares de v e retorne quantos pares encontrou. O conteúdo aqui é manipulação de vetores, laço for, teste de paridade e contadores.
Passo 2
A estratégia geral é percorrer o vetor v com um índice i de 0 até n–1. Vamos manter um contador count inicializado em 0 que indica quantos pares já copiamos para w.
Passo 3
Para cada elemento v[i], usamos o teste de paridade
. Se for par, colocamos w[count] = v[i] e incrementamos count.
Passo 4
Depois de varrer todo o v, a variável count terá o número total de elementos pares e o vetor w estará preenchido nos índices de 0 até count–1. Basta retornar count.
Passo 5
Para testar a função, no main geramos um vetor v com valores aleatórios (usando rand()), chamamos pares(v, n, w), recebemos o tamanho de w e imprimimos tanto v quanto w para verificar se copiamos corretamente só os pares.
Resposta
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdlib.h>
#include <time.h>
int pares(int v[], int n, int w[]) {
int count = 0;
for (int i = 0; i < n; i++) {
if (v[i] % 2 == 0) {
w[count] = v[i];
count++;
}
}
return count;
}
int count = 0;
for (int i = 0; i < n; i++) {
if (v[i] % 2 == 0) {
w[count] = v[i];
count++;
}
}
return count;
}
int main() {
const int N = 10;
int v[N], w[N];
const int N = 10;
int v[N], w[N];
srand((unsigned)time(NULL));
// preenche v com valores aleatórios de 0 a 99
for (int i = 0; i < N; i++) {
v[i] = rand() % 100;
}
int tamanho_w = pares(v, N, w);
printf("Vetor original v:\n");
for (int i = 0; i < N; i++) {
printf("%d ", v[i]);
}
printf("\n\nVetor de pares w (tamanho = %d):\n", tamanho_w);
for (int i = 0; i < tamanho_w; i++) {
printf("%d ", w[i]);
}
printf("\n");
return 0;
}