Menu
CoddyTech

Çok Boyutlu Diziler

Coddy'nin C Journey'sinin Temeller bölümünün bir parçası. Ders 56 / 63.

Çok boyutlu dizi, dizilerden oluşan bir dizidir. C dilinde, temelde satırları ve sütunları olan bir tablo biçiminde 2 boyutlu bir dizi oluşturabilirsin (en yaygın çok boyutlu dizi türü).

2 boyutlu bir dizi tanımla:

int matrix[3][4];

Bu, 3 satır ve 4 sütundan oluşan 2 boyutlu bir dizi oluşturur. İndeksler 0'dan başlar; dolayısıyla satır indeksleri 0 ile 2, sütun indeksleri ise 0 ile 3 arasındadır.

2B diziyi tanımlarken başlatabilirsin:

int matrix[3][4] = {
    {1, 2, 3, 4},    // Birinci satır
    {5, 6, 7, 8},    // İkinci satır
    {9, 10, 11, 12}  // Üçüncü satır
};

2B dizideki öğelere erişmek için iki indeks kullan:

int value = matrix[1][2];  // Satır indeksi 1 (ikinci satır), sütun indeksi 2 (üçüncü sütun): değer 7'dir

2 boyutlu bir dizideki bir öğeyi değiştirmek için:

matrix[0][3] = 100;  // Satır indeksi 0, sütun indeksi 3 olan elemanı 100 olarak değiştirir

2 boyutlu dizideki tüm öğelere erişmek için iç içe döngüler de kullanabilirsin:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        printf("%d ", matrix[i][j]);
    }
    printf("\n");  // Her satırdan sonra yeni satıra geç
}
challenge icon

Görev

Kolay

printDiagonal adında, 2B kare bir dizi (satır sayısının sütun sayısına eşit olduğu) alan ve ana köşegendeki (sol üstten sağ alta) elemanları yazdıran bir işlev oluşturun.

İşlev şunları yapmalıdır:

  1. Parametre olarak bir tamsayı dizisi ve dizinin boyutunu almalıdır.
  2. Ana köşegendeki (satır indeksinin sütun indeksine eşit olduğu) her elemanı yazdırmalıdır.
  3. Her elemanı bir boşlukla ayırmalıdır.

Örneğin, aşağıdaki dizi verildiğinde:

1 2 3 4 5 6 7 8 9

İşlev şunu yazdırmalıdır: 1 5 9

Kendin dene

#include <stdio.h>

// Kare bir matrisin köşegen elemanlarını yazdıran fonksiyon
void printDiagonal(int matrix[][100], int size) {
    // Kodunuzu buraya yazın
    
}

int main() {
    int size;
    scanf("%d", &size);
    
    int matrix[100][100];
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }
    
    printDiagonal(matrix, size);
    
    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.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online C derleyicisi