Powtórka: argumenty wskaźnikowe funkcji
Część sekcji Logika i sterowanie przepływem ścieżki C w Coddy. Lekcja 30 z 63.
Wyzwanie
ŁatwyNapisz 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:
- 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
- Wewnątrz funkcji
findMinMaxprzejść przez tablicę, aby znaleźć wartości minimalną i maksymalną - Użyć operatora dereferencji, aby zapisać wartość minimalną pod adresem wskazywanym przez wskaźnik min
- Użyć operatora dereferencji, aby zapisać wartość maksymalną pod adresem wskazywanym przez wskaźnik max
- W funkcji
mainwczytać liczbę całkowitąn, która określa liczbę elementów w tablicy - Wczytać
nliczb całkowitych i zapisać je w tablicy - Zadeklarować dwie zmienne całkowite
minValueimaxValue, aby przechować wyniki - Wywołać funkcję
findMinMax, przekazując jej tablicę, jej rozmiar oraz adresy zmiennychminValueimaxValue - Wypisać wyniki w formacie:
Minimum: [value]iMaximum: [value]
Na przykład, jeśli dane wejściowe to:
5
12 7 23 4 18Wynik powinien wyglądać tak:
Minimum: 4
Maximum: 23To 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
1Podstawy wskaźników
Czym jest wskaźnik?Deklarowanie wskaźnikówOperator pobrania adresu (&)Operator dereferencji (*)Wskaźniki NULLPodsumowanie: podstawy wskaźników4Projekt: Proste narzędzie tekstowe
Przegląd projektuLiczenie znaków2Wskaźniki i tablice
Nazwy tablic jako wskaźnikiElementy tablic — wskaźnikiArytmetyka wskaźnikówPorównywanie wskaźnikówPodsumowanie: przechodzenie po tablicy za pomocą wskaźników5Wskaźniki i funkcje
Przekazywanie przez wartośćPrzekazywanie wskaźników do funkcjiModyfikowanie zmiennych za pomocą wskaźnikówKlasyczny przykład: zamianaPrzekazywanie tablic do funkcjiPowtórka: argumenty wskaźnikowe funkcji8Struktury i wskaźniki
Wskaźniki do strukturOperator strzałki (->)Przekazywanie struktur przez wartośćPrzekazywanie wskaźników do strukturDynamiczna alokacja strukturPodsumowanie: modyfikowanie struktury — wskaźnik11Końcowe zadania powtórkowe
Powtórka: dynamiczne łączenie ciągów znakówPowtórka: tablica strukturPowtórka: licznik częstotliwości słów3Tablice znaków i ciągi znaków
Ciągi znaków jako tablice charZnak końca ciąguWczytywanie ciągu za pomocą scanfUżywanie strlen()Używanie strcpy()Używanie strcat()Używanie strcmp()Podsumowanie: podstawowe funkcje do obsługi ciągów znakówPoćwicz samodzielnie: Kompilator C online