Özet: Fonksiyon İşaretçi Argümanları
Coddy'nin C Journey'sinin Logic & Flow bölümünün bir parçası — ders 30 / 63.
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:
- Dört parametre alan
findMinMaxadı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
findMinMaxfonksiyonu içinde, minimum ve maksimum değerleri bulmak için diziyi yineleyin- Minimum değeri, min işaretçisi tarafından gösterilen adreste saklamak için dereference (adres çözümleme) operatörünü kullanın
- Maksimum değeri, max işaretçisi tarafından gösterilen adreste saklamak için dereference (adres çözümleme) operatörünü kullanın
mainfonksiyonunda, dizideki eleman sayısını temsil eden birntam sayısı okuyunnadet tam sayı değeri okuyun ve bunları bir dizide saklayın- Sonuçları saklamak için
minValuevemaxValueadında iki tam sayı değişkeni tanımlayın - Diziyi, boyutunu ve
minValueilemaxValuedeğişkenlerinin adreslerini geçirerekfindMinMaxfonksiyonunu çağırın - Sonuçları şu formatta yazdırın:
Minimum: [value]veMaximum: [value]
Örneğin, giriş şu şekildeyse:
5
12 7 23 4 18Çıktınız şu şekilde olmalıdır:
Minimum: 4
Maximum: 23Bu 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
1Pointer Temelleri
Pointer Nedir?Pointer TanımlamaAdres Operatörü (&)Dereference Operatörü (*)NULL Pointer'larÖzet: Pointer Temelleri4Proje: Basit Metin Aracı
Projeye Genel BakışKarakter Sayma2İşaretçiler ve Diziler
İşaretçi Olarak Dizi İsimleriDizi Elemanları - İşaretçilerİşaretçi Aritmetiğiİşaretçilerin KarşılaştırılmasıÖzet: İşaretçi ile Dizi Gezinme5İşaretçiler ve Fonksiyonlar
Değer ile GeçmeFonksiyonlara İşaretçi Göndermeİşaretçiler ile Değişkenleri DeğiştirmeKlasik Bir Örnek: SwapFonksiyonlara Dizi GöndermeÖzet: Fonksiyon İşaretçi Argümanları8Yapılar ve İşaretçiler
Yapılara İşaretçilerOk Operatörü (->)Yapıları Değer ile AktarmaYapı İşaretçilerini AktarmaYapıların Dinamik TahsisiÖzet: Yapıyı Değiştirme - Ptr11Son Tekrar Görevleri
Tekrar: Dinamik String BirleştirmeTekrar: Struct DizisiTekrar: Kelime Frekans Sayacı3Karakter Dizileri ve Stringler
char Dizisi Olarak StringlerNull Sonlandırıcıscanf ile String Girişistrlen() Kullanımıstrcpy() Kullanımıstrcat() Kullanımıstrcmp() KullanımıÖzet: Temel String Fonksiyonları