Menu
Coddy logo textTech

Özet: Dinamik Dizi

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

challenge icon

Görev

Kolay

Kullanıcı girişine dayalı dinamik bir dizi oluşturan, verileri işleyen ve uygun bellek yönetimini gösteren bir C programı yazın. Programınız şunları yapmalıdır:

  1. Kullanıcıdan saklanacak eleman sayısını temsil eden bir n tam sayısı okuyun
  2. n tam sayıdan oluşan bir dizi için belleği dinamik olarak ayırmak üzere sizeof() ile birlikte malloc() kullanın
  3. Bellek ayırmanın başarılı olup olmadığını kontrol edin - eğer başarısız olursa, Memory allocation failed! yazdırın ve programı sonlandırın
  4. Ayırma başarılı olursa, Array of size [n] created successfully! yazdırın
  5. Kullanıcıdan n tam sayı değeri okuyun ve bunları ayrılan dizide saklayın
  6. Tüm elemanların toplamını şu formatta hesaplayın ve yazdırın: Sum: [value]
  7. Minimum değeri şu formatta bulun ve yazdırın: Minimum: [value]
  8. Ortalamadan büyük kaç eleman olduğunu sayın ve şu formatta yazdırın: Elements above average: [count]
  9. Kullanılan toplam belleği bayt cinsinden şu formatta yazdırın: Memory used: [bytes] bytes
  10. Belleği serbest bırakmak için free() kullanın
  11. Düzgün temizliği onaylamak için Memory successfully freed! yazdırın

malloc() ve free() kullanmak için <stdlib.h> başlık dosyasını eklemeyi unutmayın. Bu zorluk, ayırmadan kullanıma ve uygun temizliğe kadar dinamik bellek yönetimi konusundaki tam anlayışınızı test eder.

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

5
12 8 15 3 20

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

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

Bu kapsamlı zorluk, 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);
    
    // YAPILACAK: Kodunuzu aşağıya yazın
    // 1. malloc() kullanarak n tam sayı için bellek ayırın
    // 2. Bellek ayırmanın başarılı olup olmadığını kontrol edin
    // 3. n tam sayıyı diziye okuyun
    // 4. Toplamı hesaplayın, minimumu bulun, ortalamanın üzerindeki elemanları sayın
    // 5. Sonuçları yazdırın ve belleği serbest bırakın
    
    return 0;
}

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