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 [min , max ], onde min e max são parâmetros recebidos por valor pela função).
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:
numeroa<=atorio = rand() % (max - min + 1) + min
Explicando:
  • rand() % (max - min + 1) gera um número entre 0 e max - min.
  • Somando min, ajustamos o intervalo para ficar entre min e max.

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!

Exercícios relacionados