Menu
Coddy logo textTech

Recapitulação: Ponteiros como Argumentos

Parte da seção Logic & Flow do Journey de C da Coddy — lição 30 de 63.

challenge icon

Desafio

Fácil

Escreva um programa em C que implemente uma função para encontrar os valores mínimo e máximo em um array usando argumentos de ponteiro. Seu programa deve:

  1. Criar uma função chamada findMinMax que recebe quatro parâmetros:
    • Um array de inteiros
    • O tamanho do array
    • Um ponteiro para um inteiro para armazenar o valor mínimo
    • Um ponteiro para um inteiro para armazenar o valor máximo
  2. Dentro da função findMinMax, iterar pelo array para encontrar os valores mínimo e máximo
  3. Usar o operador de desreferência para armazenar o valor mínimo no endereço apontado pelo ponteiro min
  4. Usar o operador de desreferência para armazenar o valor máximo no endereço apontado pelo ponteiro max
  5. Na função main, ler um inteiro n representando o número de elementos no array
  6. Ler n valores inteiros e armazená-los em um array
  7. Declarar duas variáveis inteiras minValue e maxValue para armazenar os resultados
  8. Chamar a função findMinMax, passando o array, seu tamanho e os endereços de minValue e maxValue
  9. Imprimir os resultados no formato: Minimum: [value] e Maximum: [value]

Por exemplo, se a entrada for:

5
12 7 23 4 18

Sua saída deve ser:

Minimum: 4
Maximum: 23

Este desafio demonstra a técnica poderosa de usar múltiplos argumentos de ponteiro para retornar múltiplos valores de uma única chamada de função, permitindo que a função modifique variáveis no escopo da função que a chamou.

Experimente você mesmo

#include <stdio.h>

// TODO: Escreva sua função findMinMax aqui

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    int minValue, maxValue;
    
    // TODO: Chame a função findMinMax aqui
    
    printf("Minimum: %d\n", minValue);
    printf("Maximum: %d\n", maxValue);
    
    return 0;
}

Todas as lições de Logic & Flow