Questão 1 (3,0 pontos): vetor (em linguagem C)

Pediu-se para criar três vetores de números reais. O primeiro, A, e o segundo, B, ambos com 800 posições cada. E mais um, C. Serão lidos todos os elementos dos vetores A e B. O vetor C tem como primeiro elemento o último elemento de A . O segundo elemento de C é o primeiro de B . O terceiro elemento é o penúltimo de A , o quarto elemento é o segundo de B e assim sucessivamente, até que todos os elementos de A e B sejam usados.

Passo 1

O enunciado pede para criarmos três vetores em C:
A e B com 800 posições cada (tipo real).
C com 1600 posições.
Em seguida, devemos:
1. Ler todos os elementos de A e de B.
2. Preencher C intercalando o último de A, o primeiro de B, o penúltimo de A, o segundo de B e assim por diante, até usar todos os elementos.
O conteúdo necessário envolve declaração de arrays, leitura com scanf, percorrer vetores com for e manipulação de índices.

Passo 2

Lemos os 800 valores de A usando um laço for(i \(=0\); i < \(800\); i\(++\)) scanf("%lf",&A[i]); e, em seguida, lemos os 800 valores de B de forma análoga.

Passo 3

Para montar C, observamos que em cada passo i (de 0 a 799):
  • O índice par em C é 2*i e recebe o elemento A[799 - i].
  • O índice ímpar em C é 2*i + 1 e recebe o elemento B[i].

Passo 4

Após preencher C, podemos imprimir seus 1600 elementos num outro laço for(i = 0; i < \(1600\); i++) printf("%lf\n", C[i]); para verificar o resultado.

Resposta

#include <stdio.h>

int main() {
    double A[800], B[800], C[1600];
    int i;

    // Leitura dos vetores A e B
    for(i = 0; i < 800; i++) {
        scanf("%lf", &A[i]);
    }
    for(i = 0; i < 800; i++) {
        scanf("%lf", &B[i]);
    }

    // Montagem do vetor C intercalando A de trás para frente e B de frente
    for(i = 0; i < 800; i++) {
        C[2*i]     = A[799 - i];
        C[2*i + 1] = B[i];
    }

    // Impressão do vetor C
    for(i = 0; i < 1600; i++) {
        printf("%lf\n", C[i]);
    }

    return 0;
}

Exercícios relacionados