determinant fonksiyonunun çağrılması

Başlatan gocen, 10 Mayıs 2011 - 16:04:19

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

gocen

merhaba arkadaşlar,
bir ödevimizle ilgili olarak internetten determinant bulan bir fonksiyon buldum
matrisin içine değerler atıp bu fonksiyonu main'den nasıl çağrılacağı hakkında
yardımcı olabilecek arkadaş varsa sevinirim
bulduğum kod şu şekilde
double Determinant(double **a,int n)
{
   int i,j,j1,j2;
   double det = 0;
   double **m = NULL;

   if (n < 1) { /* Error */

   } else if (n == 1) { /* Shouldn't get used */
      det = a[0][0];
   } else if (n == 2) {
      det = a[0][0] * a[1][1] - a[1][0] * a[0][1];
   } else {
      det = 0;
      for (j1=0;j1<n;j1++) {
         m = malloc((n-1)*sizeof(double *));
         for (i=0;i<n-1;i++)
            m[i] = malloc((n-1)*sizeof(double));
         for (i=1;i<n;i++) {
            j2 = 0;
            for (j=0;j<n;j++) {
               if (j == j1)
                  continue;
               m[i-1][j2] = a[i][j];
               j2++;
            }
         }
         det += pow(-1.0,j1+2.0) * a[0][j1] * Determinant(m,n-1);
         for (i=0;i<n-1;i++)
            free(m[i]);
         free(m);
      }
   }
   return(det);
}
Ayinesi iştir kişinin lafa bakılmaz,
Şahsın görünür, rütbe-i aklı eserinde.
Ziya Paşa