Escrever uma função int somavet(int v[], int n), que recebe como parâmetros um vetor ( v ) e seu tamanho ( n ) e retorna a soma dos elementos do vetor. Testar a função para valores de n ev gerados aleatoriamente.

Passo 1

A questão pede para criar uma função em C chamada somavet que receba um vetor v[] e seu tamanho n e retorne a soma de todos os elementos. O tema é programação em C, focado em vetores e funções, e vamos precisar usar um laço para percorrer o vetor e acumular os valores.

Passo 2

Vamos implementar a função int somavet(int v[], int n). Dentro dela, declaramos uma variável soma iniciada em zero e usamos um laço for para somar cada elemento de v[i] em soma. No final, retornamos soma.

Passo 3

No main(), precisamos testar essa função para valores de n gerados aleatoriamente. Primeiro fazemos srand(time(NULL)) para inicializar o gerador de números aleatórios. Em seguida, geramos um valor de n com rand()%MAX_N+1 para garantir valor entre 1 e MAX_N, alocamos um vetor de tamanho suficiente, preenchemos cada posição com valores também aleatórios e chamamos somavet. Por fim, imprimimos o resultado.

Passo 4

Para tornar o teste repetível, podemos rodar vários casos dentro de um laço ou simplesmente gerar um único vetor aleatório, chamar somavet e mostrar na tela: tamanho do vetor, elementos e soma obtida.

Resposta

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_N 20 // tamanho máximo que vamos testar
int somavet(int v[], int n) {
int soma = 0;
for (int i = 0; i < n; i++) {
soma += v[i];
}
return soma;
}
int main() {
srand(time(NULL));
// Gera um tamanho aleatório entre 1 e MAX_N
int n = rand() % MAX_N + 1;
int v[MAX_N];

// Preenche o vetor com valores aleatórios entre 0 e 99
printf("Teste com n = %d\n", n);
printf("Vetor: ");
for (int i = 0; i < n; i++) {
    v[i] = rand() % 100;
    printf("%d ", v[i]);
}
printf("\n");

// Chama a função e imprime a soma
int resultado = somavet(v, n);
printf("Soma dos elementos = %d\n", resultado);

return 0;
}

Exercícios relacionados