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:
  1. Gera dois vetores com um tamanho definido (TAM), preenchidos com números inteiros aleatórios.
  2. 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.h e time.h sã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: vetor1 e vetor2 são arrays de inteiros com tamanho TAM.
  • 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 for são usados para preencher vetor1 e vetor2 com 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 vetor1 com o elemento correspondente de vetor2 de trás para frente, e imprime o resultado.
Esse programa atende exatamente ao que foi solicitado no exercício!

Exercícios relacionados