> 1 <
| Yazar | Mesaj |
|
10:28 11-07-2006 GMT+02 saat |
|
Aşagıdaki kodda 2 boyutlu diziler üzerine çalışmalar yapmaya çalıştım(Rastgele doldurma, Sütunları Sıralama, Transpozesini Alma). Fonksiyonların bir kısmında diziyi değiştirmem gerekti ve işte burada sorunlarla karşılaştım. Kodum Şöyle:
Kod: #include <stdio.h> #include <string.h> #include <time.h> #include <stdlib.h> #define SIZE 5 void sortArray(int*); void transposeMatrix(int *dizi[][SIZE]); void printMatrix(const int dizi[][SIZE]); void sortRows(int *dizi[][SIZE]); void fillRandom(int dizi[][SIZE]); int dizi[SIZE][SIZE]; void main(){ fillRandom(dizi); printMatrix(dizi); printf("\n\n"); sortRows(dizi); printf("\n\n"); printMatrix(dizi); } void sortArray(int *dizi) { int i, j, temp; for(i=1; i<SIZE; ++i){ temp=dizi[i]; for(j=i; j>0 && dizi[j-1]>temp; --j) dizi[j]=dizi[j-1]; dizi[j]=temp; } } void transposeMatrix(int *dizi[][SIZE]) { int i,j,*temp; for(i=0;i<SIZE;i++) { for(j=0;j<SIZE;j++) { temp=dizi[i][j]; dizi[i][j]=dizi[j][i]; dizi[j][i]=temp; } } } void printMatrix(const int dizi[][SIZE]) { int i,j; for(i=0;i<SIZE;i++) { for(j=0;j<SIZE;j++) printf("%d ",dizi[i][j]); printf("\n"); } } void sortRows(int *dizi[][SIZE]) { int i; for(i=0;i<SIZE;i++) sortArray(dizi[i]); } void fillRandom(int dizi[][SIZE]) { int i,j; srand((int)(time(0))); for(i=0;i<SIZE;i++) { for(j=0;j<SIZE;j++) { dizi[i][j]=rand()%100; } } } Bilen arkadaşlar, dizileri fonksiyonlara nasıl geçireceğim hakkında biraz daha bilgi verirlerse çok sevinirim. Şimdiden teşekkürler. |
|
sinem yılmaz |
04:01 12-07-2006 GMT+02 saat |
|
dizi'yi global tanımlamak yerine main içinde tanımlasan daha güzel olur bence. mainden yine eski yazdığın gibi fonksiyonları çağır.. fonksiyonları da
void sortArray(int dizi[][SIZE]) { . . } şeklinde yazabilirsin.. |
|
|
17:51 13-07-2006 GMT+02 saat |
|
Teşekkürler
|
|
sinem yılmaz |
01:12 14-07-2006 GMT+02 saat |
|
birşey değil.. yine bekleriz..
kolay gelsin.. |
|
mehmet gok |
06:54 16-07-2006 GMT+02 saat |
|
Kod: fillRandom(&dizi); şekilinde gönderebilirsin fakat iki boyutlu arraylerde fonksiyon alıdığında adres numarası soldan sağa yukardan aşağı doğru artar. Örnek verecek olursam. dizi[5][3] ise adres numaraları aşağıdaki gibi sıralanır. [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] |
|
bartu ve cor |
13:34 27-08-2006 GMT+02 saat |
|
eline sağlık
|
|
> 1 <



