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:
– e
com
posições cada (tipo real).
– com
posições.
Em seguida, devemos:
. Ler todos os elementos de
e de
.
. Preencher
intercalando o último de
, o primeiro de
, o penúltimo de
, o segundo de
e assim por diante, até usar todos os elementos.
O conteúdo necessário envolve declaração de arrays, leitura com
–
–
Em seguida, devemos:
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
valores de
usando um laço valores de
de forma análoga.
for(i \(=0\); i < \(800\); i\(++\)) scanf("%lf",&A[i]);
e, em seguida, lemos os
Passo 3
Para montar
, observamos que em cada passo
(de
a
):
- O índice par em
é e recebe o elemento . - O índice ímpar em
é e recebe o elemento .
Passo 4
Após preencher
, podemos imprimir seus
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;
}