Anasayfa C Dili Çok Boyutlu Diziler

C Dili Çok Boyutlu Diziler

Okan

Tek boyutlu diziler belirli isimde listeler oluşturup bu listelerle ilgili işlem yapmak için kullanılır.

İki boyutlu diziler ise daha çok satır ve sütunlardan oluşan yapılar için kullanılır.

İki boyutlu diziler matris olarak da adlandırılır. İlk boyuta satır ikinci boyuta sütun denir.

İki boyutlu dizilerin genel yapısı şu şekildedir:

veri_tipi, dizi_adi [satır_sayısı] [sutun_sayısı];
veri_tipi, dizi_adi [satır_sayısı] [sutun_sayısı] = {satır0-sutun0,satır0-sutun1....}

Şimdi basit bir iki boyutlu dizi tanımlayalım.

#include <stdio.h>

main()
{
	int dizi[2][3] = {{12,34,22},{11,49,98}};        
	
	printf("%d\n",dizi[1][1]);
	printf("%d",dizi[0][2]);
}

Yukarıdaki dizi[1][1] dizideki 2.satırın 2. ifadesini gösterir. Dizi indeksleri 0 dan başladığı için ulaşmak istediğimiz satır veya sütunun bir altındaki değeri giriyoruz. Daha detaylı anlatım için C Dili Diziler sayfasını ziyaret edebilirsiniz.

Kodun ekran çıktısı aşağıdaki şekildedir:

diziler-1

Buradaki satır ve sütün mantığını daha iyi bir şekilde anlamak için aşağıdaki tabloyu inceleyebilirsiniz.

iki-boyutlu-dizi

İki boyutlu dizilerinin indekslerinin yerleşimi bu şekildedir.

İki Boyutlu Dizileri Ekrana Yazdırma

Şimdi de For Döngüsü yardımıyla iki boyutlu dizilerin tüm değerlerini ekrana yazdıracağız.

İki boyutlu dizileri yazdırırken genellikle iç içe for döngülerini kullanırız.

#include <stdio.h>

main()
{
	int dizi[2][3] = {{12,34,22},{11,49,98}};        
	
	for(int i = 0; i < 2; i++)
	{
		for(int j = 0; j <3; j++)
		{
			printf("Dizi[%d][%d] = %d\n",i,j, dizi[i][j]);
		}
	}
}

Dışarıdaki for döngüsü satırı temsil ederken içerideki de sütünü temsil eder. Kısacası;

dizi[0,0] – dizi[0,1] – dizi[0…] diye gidiyor. Sütunu sonuna ulaştığı zamanda bir alt satırda geçiyor.

dizi[1,0] – dizi[1,1]- dizi[1,..] bu şekilde devam ediyor.

Kodun ekran çıktısı aşağıdaki şekildedir:

diziler-2

İki boyutlu dizileri ekrana yazdırırken yukarıdaki örnekteki gibi genellikle iç içe for döngüsü kullanırız.

İki Boyutlu Dizinin Elemanlarını Kullanıcıdan Alma

Yukarıdaki örnekte kendi oluşturduğumuz dizi elemanlarını ekrana yazdırmıştık.

Şimdi yapacağımız örnekte ise dizinin elemanlarını da kullanıcıdan alıp ekrana yazdıracağız.

Aynı şekilde kullanıcıdan değerleri alırken de iç içe for döngülerini kullanacağız.

#include <stdio.h>

main()
{
	int dizi[3][4];
	
	for(int i = 0; i < 3; i++)
	{
		for(int j = 0; j < 4; j++)
		{
			printf("Dizi[%d][%d] = ",i,j);
			scanf("%d",&dizi[i][j]);
		}
	}
	for(int i = 0; i < 3; i++)
	{
		for(int j = 0; j <4; j++)
		{
			printf("%d\t",dizi[i][j]);
		}
		printf("\n");
	}
}

Bu örnekte kullanıcıdan değerleri alırken for döngülerini kullandık. Dışarıdaki for döngüsü satırları ifade ederken içerideki sütunları ifade ediyor. Bu şekilde iki boyutlu dizinin tüm elemanlarını doldurmuş oluyoruz.

Kodun ekran çıktısı aşağıdaki şekildedir:

diziler-3

Şimdi de daha farklı bir örnek yapalım.

3 tane öğrencinin vize ve final notlarını kullanıcıdan alıp ekrana tablo şeklinde yazacağız. Bu örneği iki boyutlu dizileri kullanarak yapacağız. Her bir sütun bir öğrenciyi temsil edecek. Her satırda o öğrenciye ait sınav notlarını temsil edecek.

Örneğin kodu aşağıdaki gibidir:

#include <stdio.h>

main()
{
	int dizi[3][2];  
	
	for(int i = 0; i < 3; i++)
	{
		for(int j = 0; j < 2; j+=2)
		{
			printf("%d. Ogrencinin vize notunu giriniz: ",i+1);
			scanf("%d",&dizi[i][j]);
			printf("%d. Ogrencinin final notunu giriniz: ",i+1);
			scanf("%d",&dizi[i][j+1]);
		}
	}

	printf("\nOgrenci No\t Vize Puani\t Final Notu");

	for(int i = 0; i < 3; i++)
	{
		printf("\nNO : %d\t", i+1);
		for(int j = 0; j < 2; j+=2)
		{
			printf("\t\t%d",dizi[i][j]);
			printf("\t\t%d",dizi[i][j+1]);
		}
		
	}
}

Yukarı örnekteki dizi[3][2] iki boyutlu dizisindeki 3 sayısı 3 tane öğrenci olduğunu, 2 sayısı da öğrencinin notlarını belirtiyor.

Kodun ekran çıktısı da aşağıdaki şekildedir:

diziler-4

İki boyutlu dizileri kullanarak çok fazla örnek yapabiliriz. Konuyu örnekler yaparak daha iyi kavramak için C Programlama Dili Örnekleri sayfasında 45 ‘ den 49. soruya kadar olan örnekleri çözebilirsiniz

Yorum Yap

Bu web sitesi deneyiminizi geliştirmek için çerezler kullanmaktadır. Kabul Et Tamamını Oku

Gizlilik Politikası