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. A[i] % 2 != 0), 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;
// 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;
}

Exercícios relacionados