C programlama dili diziler konusunda tek boyutlu ve çift boyutlu dizileri anlatmıştık. C Programlama Dili Çok Boyutlu Diziler’i bir örnek anlatacağız.
SORU : İndisleri sırasıyla 3,4 ve 5 olan 3 boyutlu bir integer dizi tanımlayınız. Bu dizinin her bir bloğuna 1’den 60’a kadar sırasıyla değerleri yerleştirelim. Daha sonra 3 indis çarpımı ile blok içerisindeki değer eşit olanları ekrana yazdıran c kodunu yazınız.
örnek çıktı şu şekildedir;
1 x 1 x 1 indisleri carpimi ile icerisindeki 1 degeri aynidir. |
ÇÖZÜM :
- Öncelikle integer türünde 3 boyutlu dizimiz olarak dizi[3][4][5] dizisini tanımlıyoruz.
- Daha sonra iç içe 3 for döngüsü ile bütün bloklara 1’den 60’a kadar ardışık değerleri atıyoruz.
- Değer atama işleminden sonra tekrar iç içe 3 for döngüsü ile bütün elemanlar kontrol edilir.
- Dizilerde indisler 0’dan başladığı için çarpma işleminde yutan eleman durumundan dolayı kontrol yaparken “indis+1” olarak kontrol yapılmalıdır.(i+1 ya da j+1 gibi)
- Son olarak if kontrol deyimi içerisindeki şartı sağlayan değerlerde tek tek ekrana yazılır ve program sonlandırılır.
Program Kodu :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include<stdio.h>
main(){
int dizi[3][4][5];
int i , j , k , deger=1;
//İçiçe 3 for döngüsü ile 3 boyutlu dizimize 1'den 60'a kadar değerler atılır.
for(i=0 ; i<3 ; i++){
for(j=0 ; j<4 ; j++){
for(k=0 ; k<5 ; k++){
dizi[i][j][k] = deger;
deger++;
}
}
}
//ikinci kez içiçe 3 for döngüsü ile bloklar tek tek kontrol edilir ve indis çarpımları ile blok değeri eşit olanlar ekrana yazılır.
for(i=0 ; i<3 ; i++){
for(j=0 ; j<4 ; j++){
for(k=0 ; k<5 ; k++){
if(dizi[i][j][k] == (i+1)*(j+1)*(k+1)){
printf("%d x %d x %d indisleri carpimi ile icerisindeki %d degeri aynidir.\n",i+1,j+1,k+1,dizi[i][j][k]);
break;
}
}
}
}
return 0;
}
|
Ekran Çıktısı :
1 x 1 x 1 indisleri carpimi ile icerisindeki 1 degeri aynidir. 1 x 2 x 5 indisleri carpimi ile icerisindeki 10 degeri aynidir. 1 x 3 x 5 indisleri carpimi ile icerisindeki 15 degeri aynidir. 1 x 4 x 5 indisleri carpimi ile icerisindeki 20 degeri aynidir. 2 x 4 x 5 indisleri carpimi ile icerisindeki 40 degeri aynidir. 3 x 4 x 5 indisleri carpimi ile icerisindeki 60 degeri aynidir. |
- Çıktıda da görüldüğü gibi indis çarpımları ile blok içerisindeki değerin aynı olduğu sonuçlar ekrana verilmiştir.
Son olarak tek ve çift boyutlu dizi konularına bir göz atmak isterseniz buradan o konularımıza da ulaşabilirsiniz.