Forumlar » 2. Programlama » C++ » Diziyi Fonksiyona Geçirme ?

 

> 1 <
Yazar Mesaj

Çevirmiçi mi? perq


3 ileti

Şehir:
Meslek:
Yaş:
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.

Çevirmiçi mi? snm

sinem yılmaz
11 ileti

Şehir: Türkiye ankara
Meslek: öğrenci
Yaş: 21
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..

Çevirmiçi mi? perq


3 ileti

Şehir:
Meslek:
Yaş:
17:51 13-07-2006 GMT+02 saat      
Teşekkürler

Çevirmiçi mi? snm

sinem yılmaz
11 ileti

Şehir: Türkiye ankara
Meslek: öğrenci
Yaş: 21
01:12 14-07-2006 GMT+02 saat      
birşey değil.. yine bekleriz..
kolay gelsin..

Çevirmiçi mi? narkotik

mehmet gok
90 ileti

Şehir: Türkiye Ankara
Meslek: öğrenci
Yaş: 22
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]

Çevirmiçi mi? cor

bartu ve cor
1 ileti

Şehir: Türkiye istanbul
Meslek: webmaster
Yaş:
13:34 27-08-2006 GMT+02 saat      
eline sağlık
> 1 <