Modifique a função anterior para que preencha um vetor de N posições com valores aleatórios (agora esses valores estão limitados a um intervalo
, onde
e
são parâmetros recebidos por valor pela função).
Protótipo: void preencheVetor(int v[] , int n , int min, int max);
Protótipo: void preencheVetor(int v[] , int n , int min, int max);
Passo 1
Beleza! Vamos lá entender o que o exercício está pedindo. Precisamos modificar uma função anterior para preencher um vetor (
v) com N posições usando valores aleatórios que estão limitados entre um mínimo (min) e um máximo (max). Isso envolve conceitos de arrays, funções, e geração de números aleatórios na programação. Para resolver, vamos precisar saber como:- Declarar e manipular vetores (arrays) em C.
- Gerar números aleatórios dentro de um intervalo específico.
- Passar parâmetros para funções.
Passo 2
Primeiro, vamos lembrar como declarar uma função em C. O protótipo da função que precisamos é:
void preencheVetor(int v[], int n, int min, int max);
Aqui,
v[] é o vetor que vamos preencher, n é o tamanho do vetor, e min e max definem o intervalo dos números aleatórios.Passo 3
Agora, para gerar números aleatórios em C, usamos a função
rand(). Mas o rand() por si só gera um número entre 0 e RAND_MAX. Para limitar esse número entre min e max, usamos a fórmula:Explicando:
rand() % (max - min + 1)gera um número entre0emax - min.- Somando
min, ajustamos o intervalo para ficar entreminemax.
Passo 4
Vamos começar a escrever a função. Primeiro, precisamos incluir as bibliotecas necessárias. Para usar
rand(), incluímos stdlib.h e para gerar números diferentes a cada execução, usamos time.h com a função srand.#include <stdio.h>
#include <stdlib.h>
#include <time.h>
Dentro da função, primeiro inicializamos o gerador de números aleatórios:
srand(time(NULL));
Passo 5
Agora, vamos percorrer o vetor e preencher cada posição com um número aleatório no intervalo
[min, max]. Usamos um laço for para isso:for(int i = 0; i < n; i++) {
v[i] = rand() % (max - min + 1) + min;
}
Aqui, para cada índice
i do vetor v, atribuímos um valor aleatório dentro do intervalo desejado.Passo 6
Vamos juntar tudo em uma função completa:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void preencheVetor(int v[], int n, int min, int max) {
srand(time(NULL)); // Inicializa o gerador de números aleatórios
for(int i = 0; i < n; i++) {
v[i] = rand() % (max - min + 1) + min; // Preenche o vetor
}
}
Resposta
Pronto! Agora a função
preencheVetor irá preencher o vetor v com n números aleatórios entre min e max. Você pode testar a função assim:int main() {
int vetor[10];
preencheVetor(vetor, 10, 5, 15);
// Imprime o vetor para verificar
for(int i = 0; i < 10; i++) {
printf("%d ", vetor[i]);
}
return 0;
}
Isso vai gerar e imprimir 10 números aleatórios entre 5 e 15. Legal, né? Se tiver mais dúvidas, é só perguntar!