Menu
Coddy logo textTech

Struct Başlatma

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

Yapı değişkenleri oluşturup üyelerine tek tek değer atayabilseniz de C, başlangıç değerlerini ayarlamak için daha kullanışlı bir yol sunar. Bir yapı değişkenini, bildirim sırasında süslü parantezler içine alınmış bir başlatıcı listesi kullanarak başlatabilirsiniz.

Yapı başlatma sözdizimi şöyledir:

struct StructureName variableName = {value1, value2, ...};

Point yapımızı kullanan örnekte, onu tek ve düzenli bir satırda bildirebilir ve başlatabilirsiniz:

struct Point p1 = {10, 20};

Bu, x değeri 10'a ve y değeri 20'ye ayarlanmış, p1 adlı bir Point değişkeni oluşturur. Başlatıcı listesindeki değerler, yapı tanımında bildirildikleri sırayla yapı üyelerine atanır.

Bu başlatma yaklaşımı, ayrı atamalardan yalnızca daha kısa olmakla kalmaz, aynı zamanda struct'ınızın rastgele çöp veriler yerine anlamlı değerlerle başlamasını da sağlar. Özellikle başlangıç değerlerini derleme zamanında bildiğinizde ve kullanıma hazır struct değişkenlerini verimli bir şekilde oluşturmak istediğinizde kullanışlıdır.

challenge icon

Görev

Kolay

Başlatıcı listelerini kullanarak yapı başlatmayı gösteren bir C programı oluştur. Programın şunları yapması gerekir:

  1. Aşağıdaki üyelere sahip struct adlı bir Employee tanımla:
    • Çalışan kimliğini depolamak için bir tamsayı id
    • Departman adını depolamak için boyutu 15 olan bir karakter dizisi department
    • Hizmet yılı sayısını depolamak için bir tamsayı yearsOfService
    • Çalışanın maaşını depolamak için bir kayan noktalı sayı salary
  2. Aşağıdaki verileri kullanarak başlatıcı listeleriyle üç Employee değişkeni oluştur:
    • emp1: Kimlik 101, departman "Engineering", 5 hizmet yılı, maaş 75000.50
    • emp2: Kimlik 102, departman "Marketing", 3 hizmet yılı, maaş 65000.25
    • emp3: Kimlik 103, departman "Sales", 8 hizmet yılı, maaş 80000.75
  3. Her çalışanın bilgilerini tam olarak şu biçimde yazdır:
    • Employee 1:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
    • Employee 2:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
    • Employee 3:
    • ID: [id]
    • Department: [department]
    • Years of Service: [yearsOfService]
    • Salary: [salary]
  4. Üç çalışanın toplam maaşını şu biçimde hesapla ve yazdır: Total Salary: [total]
  5. Ortalama hizmet yılı sayısını şu biçimde hesapla ve yazdır: Average Years of Service: [average]

Bu görev, yapı değişkenlerini tek satırda tanımlayıp başlattığın başlatıcı listelerini kullanarak yapı başlatma konusundaki anlayışını sınar. Başlatıcı listesindeki değerler, yapı tanımında üyelerin bildirildiği sırayla sağlanmalıdır.

Beklenen çıktın şu şekilde olmalıdır:

Employee 1:
ID: 101
Department: Engineering
Years of Service: 5
Salary: 75000.50
Employee 2:
ID: 102
Department: Marketing
Years of Service: 3
Salary: 65000.25
Employee 3:
ID: 103
Department: Sales
Years of Service: 8
Salary: 80000.75
Total Salary: 220001.50
Average Years of Service: 5.33

Kendin dene

#include <stdio.h>

// YAPILACAK: Employee yapısını (struct) burada tanımlayın

int main() {
    // YAPILACAK: Başlatıcı listelerini kullanarak üç adet Employee değişkeni oluşturun
    
    // YAPILACAK: Her bir çalışanın bilgilerini yazdırın
    
    // YAPILACAK: Toplam maaşı ve ortalama hizmet yılını hesaplayıp yazdırın
    
    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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

Kendi başına pratik yap: Online C derleyicisi