Faça um código para gerar 10 números do tipo int no intervalo de 0 a 25 e armazenar em um vetor. Utilize um ponteiro para acessar o vetor. Ao final, apresente todos os números do vetor, diga a média da sequência, o maior e menor número gerado.

Passo 1

Beleza, vamos resolver esse exercício juntos! A gente precisa escrever um código que gera 10 números inteiros entre 0 e 25, armazena esses números em um vetor, usa um ponteiro para acessar esse vetor e, por fim, mostra todos os números, a média, o maior e o menor número gerado. Para isso, vamos trabalhar com conceitos de vetores, ponteiros, geração de números aleatórios e operações básicas como soma e comparação.

Passo 2

Primeiro, vamos criar um vetor que vai armazenar os 10 números inteiros. Em C, a gente faz assim:
int vetor[10];
Aqui, int indica que o vetor vai armazenar números inteiros e [10] define que o vetor tem 10 posições.

Passo 3

Agora, precisamos preencher esse vetor com números aleatórios entre 0 e 25. Para isso, usamos a função rand() que gera números aleatórios. Mas, pra limitar o intervalo, usamos o operador de módulo %. Também precisamos garantir que os números gerados sejam diferentes a cada execução do programa usando srand(time(0)).
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int vetor[10];
    srand(time(0)); // Inicializa o gerador de números aleatórios

    for(int i = 0; i < 10; i++) {
        vetor[i] = rand() % 26; // Gera números entre 0 e 25
    }

Passo 4

Agora, vamos usar um ponteiro para acessar o vetor. Um ponteiro é uma variável que armazena o endereço de outra variável. Assim, a gente pode acessar os elementos do vetor usando o ponteiro.
    int *ptr = vetor; // Ponteiro aponta para o início do vetor

Passo 5

Vamos imprimir todos os números do vetor usando o ponteiro. A gente pode percorrer o vetor acessando cada posição através do ponteiro.
    printf("Números gerados: ");
    for(int i = 0; i < 10; i++) {
        printf("%d ", *(ptr + i));
    }
    printf("\n");
Aqui, *(ptr + i) acessa o elemento na posição i do vetor.

Passo 6

Para calcular a média, precisamos somar todos os números e depois dividir pela quantidade (10). Vamos adicionar uma variável para acumular a soma.
    int soma = 0;
    for(int i = 0; i < 10; i++) {
        soma += *(ptr + i);
    }
    float media = (float)soma / 10;
    printf("Média da sequência: %.2f\n", media);
Converti a soma para float para obter uma média com casas decimais.

Passo 7

Agora, vamos encontrar o maior e o menor número gerado. Inicializamos as variáveis maior e menor com o primeiro elemento do vetor e depois comparamos com os demais.
    int maior = *ptr;
    int menor = *ptr;

    for(int i = 1; i < 10; i++) {
        if(*(ptr + i) > maior) {
            maior = *(ptr + i);
        }
        if(*(ptr + i) < menor) {
            menor = *(ptr + i);
        }
    }

    printf("Maior número: %d\n", maior);
    printf("Menor número: %d\n", menor);
    return 0;
}

Resposta

Pronto! Quando você rodar esse código, ele vai gerar 10 números aleatórios entre 0 e 25, mostrar todos eles, calcular a média da sequência, e identificar qual é o maior e o menor número gerado. A estrutura completa fica assim:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int vetor[10];
    srand(time(0)); // Inicializa o gerador de números aleatórios

    // Preenche o vetor com números aleatórios de 0 a 25
    for(int i = 0; i < 10; i++) {
        vetor[i] = rand() % 26; // Gera números entre 0 e 25
    }

    int *ptr = vetor; // Ponteiro aponta para o início do vetor

    // Imprime os números gerados
    printf("Números gerados: ");
    for(int i = 0; i < 10; i++) {
        printf("%d ", *(ptr + i));
    }
    printf("\n");

    // Calcula a média
    int soma = 0;
    for(int i = 0; i < 10; i++) {
        soma += *(ptr + i);
    }
    float media = (float)soma / 10;
    printf("Média da sequência: %.2f\n", media);

    // Encontra o maior e o menor número
    int maior = *ptr;
    int menor = *ptr;

    for(int i = 1; i < 10; i++) {
        if(*(ptr + i) > maior) {
            maior = *(ptr + i);
        }
        if(*(ptr + i) < menor) {
            menor = *(ptr + i);
        }
    }

    printf("Maior número: %d\n", maior);
    printf("Menor número: %d\n", menor);
    return 0;
}
Quando você compilar e executar esse programa, ele vai mostrar os 10 números, a média deles, e indicar qual foi o maior e o menor número gerado.

Exercícios relacionados