Standart C ile iki diziyi alıp, iki dizi döndüren fonksiyon

Şimdi iki diziyi parametre olarak alıp, sonuçta yine iki dizi döndüren bir fonksiyon örneği yapalım. 

Aşağıdaki gibi iki diziyi parametre olarak alıp, karşılıklı elemanlarını birbirine bölerek, bölüm ve kalan şeklinde döndüren programı pointer kullanarak geliştiriniz. Örneğin;

A dizisi ={3,6,9,12,16,18} olsun,
B dizisi={2,3,3,4,4,4} olsun.

Fonksiyonumuz bu dizieri alarak bölüm ve kalan dizilerini aşağıdaki şekilde hesaplayacaktır.
 
Bölüm={1.5, 2, 3, 3, 4, 4.5}
Kalan={1,0,0,0,0,2}

Aşağıdaki örnekte bolumKalanBul fonksiyonu iki diziyi a ve b pointer parametrelerine almakta, bolum ve kalan değerlerini de yine parametre olarak a dizisinin b dizisine bölümünü ve a dizisinin b dizisine bölümünden kalanı döndürmektedir.

Bölüm yapılırken aşağıdaki gibi zorunlu tip dönüşümü kullanıldığına dikkat ediniz. 
bolum[i] = (double)a[i] /b[i]

Bu işlemi aşağıdaki şekilde de yapsak sonuç değişmezdi. Burada da pointer aritmetiği kullandık. 
*(bolum+i) = (double) *(a+i) /*(b+i)


#include <stdio.h>

double bolumKalanBul(int *a, int *b,
                     double *bolum,int *kalan,int n)
{

    for(int i=0;i<n;i++)
    {
        bolum[i]=(double)a[i]/b[i];
        kalan[i]=a[i]%b[i];
    }

}

int main() {

    int x[]={3,6,9,12,16,18};
    int y[]={2,3,3,4,4,4};

    double bolum[6]; 
    int kalan[6];
    
    bolumKalanBul(x,y,bolum,kalan,6);
    
    for(int k=0;k<6;k++)
     printf("%d/%d:%lf Kalan:%d\n",x[k],y[k],bolum[k],kalan[k]);
    
    return 0;
}





Bu sayfada yer alan kodlar Jetbrains firmasının Clion IDE'si ile yazılmıştır, Eclipse veya Netbeans gibi IDE'ler kullanabilirsiniz. C++ derleyicisi olarak MinGW kullanılmaktadır. Başka C++ derleyicileri kullandığınızda bu kodlarda yer alan komutların bulunduğu kütüphaneler farklı olabilir. İlgili komutları kendi derleyicinizin dökümanlarına bakarak projenize dahil ettiğinizde çalışacaktır. 


Mutlu kodlamalar,
Oğuzhan TAŞ
Ocak 2021
 
Bookmark and Share