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 entre0
emax - min
.- Somando
min
, ajustamos o intervalo para ficar entremin
emax
.
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!