×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: C
Posted by: Damian Pytkowski
Added: May 2, 2016 8:17 PM
Views: 1983
Tags: matrix
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <math.h>
  4. #include <windows.h>
  5.  
  6. void pisz(int t[][5]);
  7. void minor(int k[][3],int t[][4],int m, int n);
  8. void minor1(int k[][4],int t[][5],int m, int n);
  9. void dod(int t[][3]);
  10. int licz(int t[][3]);
  11.  
  12. void main()
  13. {
  14.     float n,m=0,k;
  15.     int mr[5][3],tab3[4][4],i,j,x,y=0;
  16.     int tab[5][5];
  17.     int tab4[][5]={{1,3,0,6},
  18.                     {9,8,1,3},
  19.                     {5,5,1,6},
  20.                     {2,0,3,4}};
  21.     pisz(tab);
  22.     for(x=0;x<5;x++)
  23.     {
  24.         minor1(tab3,tab,0,x);
  25.         m=0;
  26.         for(i=0;i<4;i++)
  27.         {
  28.             minor(mr,tab3,0,i);
  29.             dod(mr);
  30.             j=licz(mr);
  31.             n=pow((-1.0),i);
  32.             m=m+j*tab3[0][i]*n;
  33.         }
  34.         k=pow((-1.0),x);
  35.         y=y+m*tab[0][x]*k;
  36.     }
  37.     printf("%d",y);
  38. }
  39.  
  40. void minor(int k[][3],int t[][4],int m, int n)
  41. {
  42.     int i,j,x=0,y;
  43.     for(i=0;i<4;i++)
  44.     {
  45.         y=0;
  46.         for(j=0;j<4;j++)
  47.         {
  48.             if(i==m || j==n)
  49.             {
  50.                 continue;
  51.             }
  52.             else
  53.             {
  54.                 k[x][y]=t[i][j];
  55.                 y++;
  56.             }
  57.         }
  58.     if(i!=m){x++;}
  59.     }
  60. }
  61. void minor1(int k[][4],int t[][5],int m, int n)
  62. {
  63.     int i,j,x=0,y;
  64.     for(i=0;i<5;i++)
  65.     {
  66.         y=0;
  67.         for(j=0;j<5;j++)
  68.         {
  69.             if(i==m || j==n)
  70.             {
  71.                 continue;
  72.             }
  73.             else
  74.             {
  75.                 k[x][y]=t[i][j];
  76.                 y++;
  77.             }
  78.         }
  79.     if(i!=m){x++;}
  80.     }
  81. }
  82.  
  83. void dod(int t[][3])
  84. {
  85.     int i,j;
  86.     for(i=0;i<2;i++)
  87.     {
  88.         for(j=0;j<3;j++)
  89.         {
  90.             t[i+3][j]=t[i][j];
  91.         }
  92.     }
  93. }
  94. int licz(int t[][3])
  95. {
  96.     int i,j,il1,il2,w1,w2,s=0;
  97.     for(i=0;i<3;i++)
  98.     {
  99.         il1=1;
  100.         il2=1;
  101.         for(j=0;j<3;j++)
  102.         {
  103.             w1=t[j+i][j];
  104.             w2=t[j+i][2-j];
  105.             il1=il1*w1;
  106.             il2=il2*w2;
  107.         }
  108.         s=s+il1-il2;
  109.     }
  110.     return s;
  111. }
  112.  
  113. void pisz(int t[][5])
  114. {
  115.     int i,j,k;
  116.     for(i=0;i<5;i++)
  117.     {
  118.         k=i*5+1;
  119.         printf("Podaj %2d, %2d, %2d, %2d, %2d liczbe: \t",k,k+1,k+2,k+3,k+4);
  120.         for(j=0;j<5;j++)
  121.         {
  122.             scanf("%d",&t[i][j]);
  123.         }
  124.     }
  125. }
  126.  
  127.