CodeBlanks Logo Icon CodeBlanks

Veri modeli

  • C kursu
  • Başlangıç
  • Ders 113/116
  • 6 dk

Uygulamanın struct ve dizilerini kurarsın.

Kitap dizisi

Birden fazla kitabı yönetmek için struct Book türünden bir dizi tanımlarsın. Bu, kataloğun temel veri modelidir.

struct Book books[2] = {
    {"Suç ve Ceza", 1866},
    {"Sefiller", 1862}
};

Burada books iki kitap taşır. Her eleman kendi title ve year üyelerine sahiptir. books[0].title ile ilk kitabın başlığına erişirsin. Bu yapı, kataloğu genişletmek için temel sağlar.

Dizi elemanına erişim

Bir struct Book dizisinde elemanlara [index] ile, sonra üyelere . ile erişirsin. Zincir sırası önemlidir.

printf("%s\n", books[0].title);
printf("%d\n", books[1].year);

Önce books[0] ilk kitabı verir; sonra .title onun başlığını alır. Bu desen, tablo halindeki veriyi işlemek için standarttır. Bir for döngüsü ile tüm kitapları gezebilirsin.

Uygulama İki kitaplık dizi oluştur

struct Book books[2] tanımla ve {{"Suç ve Ceza", 1866}, {"Sefiller", 1862}} ile başlat. printf ile ilk kitabın title ve year değerlerini yazdır.

Başlangıç kodu

main.c
#include <stdio.h>

struct Book {
    char title[32];
    int year;
};

int main(void) {
    // iki kitaplık bir dizi tanımla; printf ile ilk kitabı yazdır
    return 0;
}

Örnek çözüm

main.c
struct Book books[2] = {{"Suç ve Ceza", 1866}, {"Sefiller", 1862}};
printf("%s %d\n", books[0].title, books[0].year);

Beklenen çıktı

Suç ve Ceza 1866

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 İki kitabı aynı anda tutmak için en uygun yapı nedir?

  • Bir dizi Doğru cevap
  • İki işaretçi
  • İki ayrı değişken
  • İki yapı

Açıklama: Bir dizi birden fazla yapının tek ad altında yönetilmesini sağlar.

2 İfade ve anlam eşleştir

Kavram Anlamı
books[0] İlk kitap
books[1] İkinci kitap
books[0].title İlk başlık
books[1].year İkinci yıl

3 Boşluğu doldur: dizi elemanı

Soru
printf("%s
", books____);
Cevap
printf("%s
", books[0].title);

Açıklama: books[0].title ile ilk kitabın başlığı alınır.

Başlangıç bölümündeki tüm dersler