Menu
Coddy logo textTech

Powtórka: argumenty wskaźnikowe funkcji

Część sekcji Logika i sterowanie przepływem ścieżki C w Coddy. Lekcja 30 z 63.

challenge icon

Wyzwanie

Łatwy

Napisz program w C, który implementuje funkcję znajdującą zarówno minimalną, jak i maksymalną wartość w tablicy za pomocą argumentów będących wskaźnikami. Twój program powinien:

  1. Utworzyć funkcję o nazwie findMinMax, która przyjmuje cztery parametry:
    • Tablicę liczb całkowitych
    • Rozmiar tablicy
    • Wskaźnik na liczbę całkowitą, w której zostanie zapisana wartość minimalna
    • Wskaźnik na liczbę całkowitą, w której zostanie zapisana wartość maksymalna
  2. Wewnątrz funkcji findMinMax przejść przez tablicę, aby znaleźć wartości minimalną i maksymalną
  3. Użyć operatora dereferencji, aby zapisać wartość minimalną pod adresem wskazywanym przez wskaźnik min
  4. Użyć operatora dereferencji, aby zapisać wartość maksymalną pod adresem wskazywanym przez wskaźnik max
  5. W funkcji main wczytać liczbę całkowitą n, która określa liczbę elementów w tablicy
  6. Wczytać n liczb całkowitych i zapisać je w tablicy
  7. Zadeklarować dwie zmienne całkowite minValue i maxValue, aby przechować wyniki
  8. Wywołać funkcję findMinMax, przekazując jej tablicę, jej rozmiar oraz adresy zmiennych minValue i maxValue
  9. Wypisać wyniki w formacie: Minimum: [value] i Maximum: [value]

Na przykład, jeśli dane wejściowe to:

5
12 7 23 4 18

Wynik powinien wyglądać tak:

Minimum: 4
Maximum: 23

To wyzwanie pokazuje skuteczną technikę używania wielu argumentów będących wskaźnikami do zwracania wielu wartości z pojedynczego wywołania funkcji, co pozwala funkcji modyfikować zmienne w zakresie funkcji wywołującej.

Spróbuj swoich sił

#include <stdio.h>

// TODO: Napisz tutaj swoją funkcję findMinMax

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: Wywołaj tutaj funkcję findMinMax
    
    printf("Minimum: %d\n", minValue);
    printf("Maximum: %d\n", maxValue);
    
    return 0;
}

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C online