Ç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'dir2 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ştirir2 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ç
}Görev
KolayprintDiagonal 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:
- Parametre olarak bir tamsayı dizisi ve dizinin boyutunu almalıdır.
- Ana köşegendeki (satır indeksinin sütun indeksine eşit olduğu) her elemanı yazdırmalıdır.
- 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;
}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
2Değişkenler
Veri TürleriTamsayıFloat - DoubleKarakterlerBoolean DeğerleriSabitlerprintf TemelleriDeğişken Adlandırma KurallarıTür Dönüştürme 1. BölümTür Dönüştürme 2. BölümTekrar Görevi3Operatörler
Aritmetik OperatörlerModül OperatörüArtırma/AzaltmaAtama OperatörleriKarşılaştırma OperatörleriMantıksal Operatörler 1. BölümMantıksal Operatörler 2. BölümMantıksal Operatörler 3. BölümTekrar MücadelesiKendi başına pratik yap: Online C derleyicisi