SHARE
TWEET

Untitled

a guest Nov 12th, 2019 68 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct macierz
  4. {
  5.     int wiersze, kolumny;
  6.     double **elementy;
  7. };
  8.  
  9. struct macierz* odczyt(char *plik)
  10. {
  11.     FILE *we = fopen(plik, "r");
  12.     int w, k, i, j
  13.     fread(&w, sizeof(int), 1, we);
  14.     fread(&k, sizeof(int), 1, we);
  15.     for (i=0, i<m.wiersze)
  16.     for (j=0, j<n.kolumny)
  17. };
  18.  
  19. void zapisz(char *plik, struct macierz* m)
  20. {
  21.     FILE *kopiujmacierz = (fopen("kopiujmacierz", "w")
  22.     fscanf("")
  23.  
  24.  
  25. for( int wiersze=0; wiersze<m.wiersze; wiersze++)
  26.     {
  27.         printf("|");
  28.         for(int kolumny=0; kolumny<m.kolumny; kolumny++)
  29.         {
  30.             printf(" %1.0f",m.elementy[wiersze][kolumny]);
  31.         }
  32.         printf(" |\n");
  33.     }
  34.     printf("\n");
  35. }
  36. double wyznacznik(struct macierz m)
  37. {
  38.     if(m.kolumny>2)
  39.     {
  40.         double det =0.0;
  41.         for(int kolumna=0;kolumna<m.kolumny;kolumna++)
  42.         {
  43.            struct macierz n={.wiersze=m.wiersze-1, .kolumny=m.kolumny-1,
  44.            .elementy = calloc(m.wiersze-1, sizeof (double*))};
  45.            
  46.             for (int i=0; i<m.wiersze; i++)
  47.                 n.elementy[i]= calloc(m.kolumny-1, sizeof (double));
  48.  
  49.            for(int w=1; w<m.wiersze; w++)
  50.            {
  51.                 for(int k=0, ind=0; k<m.kolumny;k++)
  52.                 {
  53.                     if(k==kolumna)
  54.                         continue;
  55.                     n.elementy[(w-1)][ind]=m.elementy[w][k];
  56.                     ind++;
  57.                 }
  58.            }
  59.            det+=wyznacznik(n)*((1+kolumna)%2 ? 1.0 : -1.0)*m.elementy[0][kolumna];
  60.            for (int i=0; i<m.wiersze; i++)
  61.            free (n.elementy[i]);
  62.            free (n.elementy);
  63.         }
  64.         return det;
  65.     }
  66.     else
  67.     {
  68.         return(m.elementy[0][0]*m.elementy[1][1]-m.elementy[0][1]*m.elementy[1][0]);
  69.     }
  70. }
  71. int main()
  72. {
  73.     struct macierz mac = {.wiersze=3, .kolumny=3,
  74.     .elementy= (double*[3]){(double[3]){1,0,0}, (double[3]){0,2,2}, (double[3]){-8,3,6}
  75.     }
  76.    
  77.     };
  78.  
  79.     wypisz(mac);
  80.     printf("wyznacznik =%f\n",wyznacznik(mac));
  81. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top