Menu
CoddyTech

Özet: Dinamik Dizi

Coddy'nin C Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 37 / 63.

challenge icon

Görev

Kolay

Kullanıcı girdisine göre dinamik bir dizi oluşturan, verileri işleyen ve doğru bellek yönetimini gösteren bir C programı yaz. Programın şunları yapması gerekir:

  1. Saklanacak eleman sayısını belirten bir tamsayı n değerini kullanıcıdan oku
  2. n tamsayıdan oluşan bir dizi için belleği dinamik olarak ayırmak üzere sizeof() ile birlikte malloc() kullan
  3. Bellek ayırmanın başarılı olup olmadığını kontrol et; başarısız olursa Memory allocation failed! yazdır ve programı sonlandır
  4. Ayırma başarılı olursa Array of size [n] created successfully! yazdır
  5. Kullanıcıdan n tamsayı değer oku ve ayrılan dizide sakla
  6. Tüm elemanların toplamını hesapla ve şu biçimde yazdır: Sum: [value]
  7. En küçük değeri bul ve şu biçimde yazdır: Minimum: [value]
  8. Ortalamanın üzerindeki eleman sayısını hesapla ve şu biçimde yazdır: Elements above average: [count]
  9. Kullanılan toplam belleği bayt cinsinden şu biçimde yazdır: Memory used: [bytes] bytes
  10. Belleği serbest bırakmak için free() kullan
  11. Doğru temizleme yapıldığını onaylamak için Memory successfully freed! yazdır

malloc() ve free() kullanmak için <stdlib.h> başlık dosyasını eklemeyi unutma. Bu alıştırma, ayırmadan kullanıma ve doğru temizlemeye kadar dinamik bellek yönetimi konusundaki kapsamlı anlayışını sınar.

Örneğin, girdi şu şekildeyse:

5
12 8 15 3 20

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

Array of size 5 created successfully!
Sum: 58
Minimum: 3
Elements above average: 3
Memory used: 20 bytes
Memory successfully freed!

Bu kapsamlı alıştırma, ayrılan dizi üzerinde anlamlı veri işleme işlemleri gerçekleştirirken dinamik bellek yönetiminin tüm yaşam döngüsünü gösterir.

Kendin dene

#include <stdio.h>
#include <stdlib.h>

int main() {
    // Eleman sayısını oku
    int n;
    scanf("%d", &n);
    
    // TODO: Kodunu aşağıya yaz
    // 1. malloc() kullanarak n tam sayı için bellek ayır
    // 2. Bellek ayırma işleminin başarılı olup olmadığını kontrol et
    // 3. n tam sayıyı diziye oku
    // 4. Toplamı hesapla, en küçük değeri bul, ortalamanın üzerindeki elemanları say
    // 5. Sonuçları yazdır ve belleği serbest bırak
    
    return 0;
}

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C derleyicisi