Menu
Coddy logo textTech

Özet: Fonksiyon İşaretçi Argümanları

Coddy'nin C Journey'sinin Logic & Flow bölümünün bir parçası — ders 30 / 63.

challenge icon

Görev

Kolay

İşaretçi (pointer) argümanlarını kullanarak bir dizideki hem minimum hem de maksimum değerleri bulan bir fonksiyonu uygulayan bir C programı yazın. Programınız şunları yapmalıdır:

  1. Dört parametre alan findMinMax adında bir fonksiyon oluşturun:
    • Bir tam sayı dizisi
    • Dizinin boyutu
    • Minimum değeri saklamak için bir tam sayı işaretçisi
    • Maksimum değeri saklamak için bir tam sayı işaretçisi
  2. findMinMax fonksiyonu içinde, minimum ve maksimum değerleri bulmak için diziyi yineleyin
  3. Minimum değeri, min işaretçisi tarafından gösterilen adreste saklamak için dereference (adres çözümleme) operatörünü kullanın
  4. Maksimum değeri, max işaretçisi tarafından gösterilen adreste saklamak için dereference (adres çözümleme) operatörünü kullanın
  5. main fonksiyonunda, dizideki eleman sayısını temsil eden bir n tam sayısı okuyun
  6. n adet tam sayı değeri okuyun ve bunları bir dizide saklayın
  7. Sonuçları saklamak için minValue ve maxValue adında iki tam sayı değişkeni tanımlayın
  8. Diziyi, boyutunu ve minValue ile maxValue değişkenlerinin adreslerini geçirerek findMinMax fonksiyonunu çağırın
  9. Sonuçları şu formatta yazdırın: Minimum: [value] ve Maximum: [value]

Örneğin, giriş şu şekildeyse:

5
12 7 23 4 18

Çıktınız şu şekilde olmalıdır:

Minimum: 4
Maximum: 23

Bu zorluk, bir fonksiyonun çağıran fonksiyonun kapsamındaki değişkenleri değiştirmesine izin vererek, tek bir fonksiyon çağrısından birden fazla değer döndürmek için çoklu işaretçi argümanları kullanmanın güçlü tekniğini göstermektedir.

Kendin dene

#include <stdio.h>

// YAPILACAK: findMinMax fonksiyonunuzu buraya yazın

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    int minValue, maxValue;
    
    // YAPILACAK: findMinMax fonksiyonunu burada çağırın
    
    printf("Minimum: %d\n", minValue);
    printf("Maximum: %d\n", maxValue);
    
    return 0;
}

Logic & Flow bölümündeki tüm dersler