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.h
etime.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
evetor2
sã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
for
são usados para preenchervetor1
evetor2
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 devetor2
de trás para frente, e imprime o resultado.
Esse programa atende exatamente ao que foi solicitado no exercício!