Escrever uma função int somavet(int v[], int n), que recebe como parâmetros um vetor (
) e seu tamanho (
) e retorna a soma dos elementos do vetor. Testar a função para valores de
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>
#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 soma = 0;
for (int i = 0; i < n; i++) {
soma += v[i];
}
return soma;
}
int main() {
srand(time(NULL));
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;
}