Escreva um programa que leia números inteiros no intervalo [0,50] e os armazene em um vetor com 10 posições. Preencha um segundo vetor apenas com os números ímpares do primeiro vetor. Imprima os dois vetores, 2 elementos por linha.
Passo 1
A ideia é ler 10 inteiros no intervalo [0,50] e guardá-los em um vetor A, depois filtrar apenas os ímpares para um vetor B e ao final imprimir ambos com 2 elementos por linha.
Passo 2
Declarar um vetor A de tamanho 10, um vetor B de tamanho 10 (no pior caso todos podem ser ímpares) e uma variável contadora contB iniciada em zero para controlar quantos ímpares entraram em B.
Passo 3
Fazer um laço de i de 0 a 9 para ler cada valor. Em cada iteração, ler o inteiro, verificar se está entre 0 e 50 (caso contrário, pode-se pedir reentrada ou assumir válido conforme enunciado) e armazenar em A[i].
Passo 4
Após preencher A, percorrer A novamente com índice i de 0 a 9. Se A[i] for ímpar (i.e.
), atribuir B[contB] = A[i] e incrementar contB.
Passo 5
Para imprimir A com 2 elementos por linha, fazer um laço i de 0 a 9: imprimir A[i] seguido de um espaço; sempre que i for ímpar (i % 2 == 1), imprimir salto de linha.
Passo 6
Fazer procedimento análogo para imprimir B: laço k de 0 a contB-1, imprimir B[k] e, a cada vez que k for ímpar, imprimir newline. Caso contB seja ímpar, ao final pode-se imprimir um newline extra.
Passo 7
O programa completo em C fica assim:
Resposta
#include <stdio.h>
int main() {
int A[10], B[10];
int contB = 0;
int A[10], B[10];
int contB = 0;
// Leitura dos 10 números
for (int i = 0; i < 10; i++) {
do {
printf("Informe um inteiro no intervalo [0,50] para A[%d]: ", i);
scanf("%d", &A[i]);
} while (A[i] < 0 || A[i] > 50);
}
// Filtrar ímpares
for (int i = 0; i < 10; i++) {
if (A[i] % 2 != 0) {
B[contB++] = A[i];
}
}
// Imprimir vetor A, 2 por linha
printf("\nVetor A:\n");
for (int i = 0; i < 10; i++) {
printf("%2d ", A[i]);
if (i % 2 == 1) printf("\n");
}
// Imprimir vetor B, 2 por linha
printf("\nVetor B (apenas ímpares):\n");
for (int k = 0; k < contB; k++) {
printf("%2d ", B[k]);
if (k % 2 == 1) printf("\n");
}
if (contB % 2 != 0) printf("\n");
return 0;
}