18 Aralık 2018 Salı

Çok Boyutlu Diziler 2

Çok Boyutlu Diziler

Çok boyutlu bir diziyi tanımlarken,eleman değerlerini atamak mümkündür.
int ablo[3][4]={8,16,9,52,3,15,27,6,14,25,2,10};
Diziyi tanımlarken , yukarıdaki gibi bir ilk değer atama yaparsanız,elemanların değeri aşağıdaki gibi olur:

Satır 0 : 8 16 9 52

satır 1 : 3 15 27 6

satır 2 : 14 25 2 10

Daha iyi anlamak için şöylede yazılabilir

int ablo[3][4]={{8,16,9,52},{3,15,27,6},{14,25,2,10}};

Bir Matrisin Transpozesini Bulma

Bir  A matrisinin aynı numaralı satırlarıyle sütunlarının yer değiştirmesiyle elde edilen matristir.
A üssü t şeklinde gösterilir.


    a11 a12 a13                   a11 a21 a31
 A =a21 a22 a23                A= a12 a22 a32
    a31 a32 a33                   a13 a23 a33

Örnek Algoritme Mantığı
1 2 3
4 5 6
7 8 9
x=0
1.adım i=0 j=1
tmp=a[0,1]
a[0,1]=a[1,0]=4
a[1,0]=tmp=2
Meydana Gelen :
1 4 3
2 5 6
7 8 9
2.adım i=0 j=2
tmp=a[0,2]=3
a[0,2]=a[2,0]=7
a[2,0]=tmp=3
Meydana Gelen :
1 4 7
2 5 6
3 8 9
x=1
3.adım i=1 j=2
tmp=a[1,2]=6
a[1,2]=a[2,1]=8
a[2,0]=tmp=6
Meydana Gelen :
1 4 7
2 5 8
3 6 9
______________________

Program

--------------------
#include <stdio.h>
int main(){
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i,j,x,tmp,n=3,m=3;
x=0;
for(i=0;i<n;i++){

for(j=x+1;j<m;j++){
tmp=a[i][j]; a[i][j]=a[j][i];
a[j][i]=tmp; printf("a dizisinin %d satiri %d sutunu %d\n",i,j,a[i][j]); }
x=x+1;}
for (i=0;i<n;i++)
   for(j=0;j<n;j++)
   printf("a dizisinin Devrik Versiyonunu %d satiri %d sutunu %d\n",i,j,a[i][j]);
}
______________________

0 yorum:

Yorum Gönder