Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.21 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. void mnozeniemacierz(int wynik[][3], int macierz[][3], int macierz2[][3])
  6. {
  7.     int a,b,c;
  8.     for (a = 0; a < 3; a++)
  9.     {
  10.         for (b = 0; b < 3; b++)
  11.         {
  12.             wynik[a][b] = 0;
  13.             for (c = 0; c < 3; c++)
  14.             {
  15.                 wynik[a][b] = macierz[a][c]*macierz2[c][b]+wynik[a][b];
  16.             }
  17.         }
  18.     }
  19. }
  20. void wydrukmacierz(int *wynik, int rzad, int kol)
  21. {
  22.     int i,j;
  23.     for (i = 0; i < rzad; i++)
  24.     {
  25.         for (j = 0; j < kol; j++)
  26.         {
  27.             printf("%d", wynik[i*kol+j]);
  28.         }
  29.         printf("\n");
  30.     }
  31. }
  32. void konwertmacierz(int macierz[][3], int macierz2[][3], char* q)
  33. {
  34.     FILE *macierze;
  35.     if ((macierze = fopen(q,"r")) == NULL)
  36.     {
  37.         printf("Nie mozna otworzyc pliku wejsciowego %s!\n", *q);
  38.         exit(1);
  39.     }
  40.     int i,j,tmp;
  41.     for (i = 0; i < 3; i++)
  42.     {
  43.         for (j = 0 ; j < 3; j++)
  44.         {
  45.             fscanf(macierze, "%d", &tmp);
  46.             if ( i < 3)
  47.             {
  48.                 macierz[i][j] = tmp;
  49.             }
  50.             else
  51.             {
  52.                 macierz2[i-3][j] = tmp;
  53.             }
  54.         }
  55.     }
  56. }
  57. void saveToFile (int* wynik, int rzad, int kol)
  58. {
  59.     FILE *wyj;
  60.     if ((wyj = fopen("wyj.txt", "a")) == NULL)
  61.     {
  62.         printf("Nie mozna otworzyc pliku wyjsciowego! \n");
  63.         exit(1);
  64.     }
  65.     int i,j;
  66.     for (i = 0; i < rzad; i++)
  67.     {
  68.         for (j = 0; j < kol; j++)
  69.         {
  70.             fprintf(wyj, "%d", wynik[i*kol+j]);
  71.         }
  72.         fprintf(wyj, "\n");
  73.     }
  74.     fprintf(wyj, "\n");
  75.     fclose(wyj);
  76. }
  77.  
  78. int main(int argc, char* argv[]) {
  79.     int macierz[3][3];   // pierwsza macierz z notatnika
  80.     int macierz2[3][3]; // druga macierz z notatnika
  81.    
  82.     FILE *wyj;
  83.     if ((wyj = fopen("wyj.txt", "w")) == NULL) {
  84.         printf("Nie mozna otworzyc pliku wyjsciowego\n");
  85.         exit(1);
  86.     }
  87.     fprintf(wyj,"");
  88.     fclose(wyj);
  89.     konwertmacierz(macierz, macierz2, argv[2]);
  90.     int wynik[3][3];
  91.     mnozeniemacierz(wynik, macierz, macierz2);
  92.     printf("B.\n");
  93.     wydrukmacierz(&wynik[0][0], 3, 3);
  94.     saveToFile(&wynik[0][0], 3, 3);
  95.    
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement