Implemente um programa em C que gere dois vetores contendo TAM números inteiros aleatórios cada um. Após a geração dos vetores, o programa deve imprimir a soma dos elementos dos vetores da seguinte forma: o primeiro elemento do primeiro vetor + o último elemento do segundo vetor, o segundo elemento do primeiro vetor + o penúltimo elemento do segundo vetor, e assim por diante, até o último elemento do primeiro vetor + o primeiro elemento do segundo vetor.
Passo 1
Beleza, vamos lá! O exercício pede para a gente criar um programa em C que faz o seguinte:
- Gera dois vetores com um tamanho definido (
TAM), preenchidos com números inteiros aleatórios. - Imprime a soma de elementos específicos desses vetores: o primeiro elemento do primeiro vetor com o último do segundo, o segundo com o penúltimo, e assim por diante, até o último elemento do primeiro vetor somar com o primeiro do segundo.
Para resolver isso, vamos precisar entender alguns conceitos básicos de programação em C, como manipulação de vetores (arrays), geração de números aleatórios, laços de repetição (loops) e operações de soma.
Passo 2
Primeiro, vamos definir o tamanho dos vetores. Vamos usar uma constante chamada
TAM para facilitar a alteração do tamanho se necessário. No C, isso pode ser feito usando a diretiva #define.#define TAM 10
Aqui,
TAM está definido como 10, mas você pode mudar esse valor conforme preferir.Passo 3
Agora, precisamos incluir as bibliotecas necessárias. Vamos usar
<stdio.h> para entrada e saída padrão e <stdlib.h> para a função de geração de números aleatórios. Também vamos incluir <time.h> para inicializar a semente aleatória, garantindo que os números gerados sejam diferentes a cada execução.#include <stdio.h>
#include <stdlib.h>
#include <time.h>
Passo 4
Vamos declarar as duas estruturas de dados (vetores) que vão armazenar os números inteiros aleatórios. Usaremos arrays do tipo
int com tamanho TAM.int vetor1[TAM];
int vetor2[TAM];
Passo 5
Agora, vamos inicializar a semente para a geração de números aleatórios usando a função
srand() e a função time(NULL) para garantir que os números sejam diferentes a cada execução.srand(time(NULL));
Passo 6
Vamos preencher os dois vetores com números aleatórios. Para isso, usamos um loop
for que percorre cada posição do vetor e atribui um número aleatório usando rand(). Podemos limitar o intervalo dos números aleatórios, por exemplo, entre 0 e 99, usando o operador módulo %.for(int i = 0; i < TAM; i++) {
vetor1[i] = rand() % 100; // Números entre 0 e 99
vetor2[i] = rand() % 100;
}
Passo 7
Agora, vamos imprimir os vetores para termos uma ideia dos números que estão trabalhando. Isso facilita a verificação do programa.
printf("Vetor 1: ");
for(int i = 0; i < TAM; i++) {
printf("%d ", vetor1[i]);
}
printf("\nVetor 2: ");
for(int i = 0; i < TAM; i++) {
printf("%d ", vetor2[i]);
}
printf("\n");
Passo 8
Agora vem a parte interessante: somar o primeiro elemento do
vetor1 com o último do vetor2, o segundo do vetor1 com o penúltimo do vetor2, e assim por diante. Para isso, usamos um loop que percorre os vetores e realiza a soma conforme descrito.printf("Soma dos elementos: ");
for(int i = 0; i < TAM; i++) {
int soma = vetor1[i] + vetor2[TAM - 1 - i];
printf("%d ", soma);
}
printf("\n");
Aqui,
vetor2[TAM - 1 - i] pega o elemento do vetor2 de trás para frente conforme o índice do vetor1.Resposta
Juntando todos os passos acima, o programa completo fica assim:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define TAM 10
int main() {
int vetor1[TAM];
int vetor2[TAM];
// Inicializa a semente para números aleatórios
srand(time(NULL));
// Preenche os vetores com números aleatórios
for(int i = 0; i < TAM; i++) {
vetor1[i] = rand() % 100; // Números entre 0 e 99
vetor2[i] = rand() % 100;
}
// Imprime os vetores
printf("Vetor 1: ");
for(int i = 0; i < TAM; i++) {
printf("%d ", vetor1[i]);
}
printf("\nVetor 2: ");
for(int i = 0; i < TAM; i++) {
printf("%d ", vetor2[i]);
}
printf("\n");
// Calcula e imprime a soma dos elementos conforme solicitado
printf("Soma dos elementos: ");
for(int i = 0; i < TAM; i++) {
int soma = vetor1[i] + vetor2[TAM - 1 - i];
printf("%d ", soma);
}
printf("\n");
return 0;
}
Explicação Final:
-
Inclusão de Bibliotecas: As bibliotecas
stdio.h,stdlib.hetime.hsão incluídas para usar funções de entrada/saída, geração de números aleatórios e manipulação de tempo, respectivamente. -
Definição de
TAM: Define o tamanho dos vetores. Aqui, está definido como 10, mas pode ser alterado conforme necessário. -
Declaração dos Vetores:
vetor1evetor2são arrays de inteiros com tamanhoTAM. -
Inicialização da Semente Aleatória:
srand(time(NULL))garante que os números aleatórios gerados sejam diferentes a cada execução do programa. -
Preenchimento dos Vetores: Dois loops
forsão usados para preenchervetor1evetor2com números aleatórios entre 0 e 99. -
Impressão dos Vetores: Mostra os valores dos dois vetores para conferência.
-
Cálculo e Impressão das Somatórias: Um loop percorre os vetores, somando o elemento atual de
vetor1com o elemento correspondente devetor2de trás para frente, e imprime o resultado.
Esse programa atende exatamente ao que foi solicitado no exercício!