Advertisement
Alan468

Alokacja Tablic 2D

Dec 19th, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.11 KB | None | 0 0
  1. #include <cstdio>
  2. #include <conio.h>
  3. #include <malloc.h>
  4.  
  5. void Mnozenie(int **W ,int **Tab1, int **Tab2, int _X, int _Y) {
  6.     for (int x = 0; x < _X; x++)
  7.         for (int y = 0; y < _Y; y++) {
  8.             W[x][y] = Tab1[x][y] * Tab2[x][y];
  9.         }
  10. }
  11.  
  12. int **Allokuj(int x, int y) {
  13.     int **Macierz;
  14.     Macierz = (int **)malloc(sizeof(int*)*x);
  15.     for (int i = 0; i < x; i++)
  16.         Macierz[i] = (int*)malloc(sizeof(int)*y);
  17.     return Macierz;
  18. }
  19.  
  20. void Zwolnij(int **Tab, int x, int y) {
  21.     for (int i = 0; i < x; i++)
  22.         free(Tab[i]);
  23.     free(Tab);
  24. }
  25.  
  26. void Wczytaj(int **Tab, int _X, int _Y) {
  27.     for (int x = 0; x < _X; x++)
  28.         for (int y = 0; y < _Y; y++) {
  29.             //Tab[x][y] = 0;
  30.             printf("T[%d][%d] = ",x,y);
  31.             scanf_s("%d", &Tab[x][y]);
  32.         }
  33. }
  34.  
  35. void Wyswietl(int **Tab, int _X, int _Y) {
  36.     for (int x = 0; x < _X; x++) {
  37.         for (int y = 0; y < _Y; y++) {
  38.             printf("%3d ", Tab[x][y]);
  39.         }
  40.         printf("\n");
  41.     }
  42. }
  43.  
  44. int main() {
  45.     int Szerokosc, Wysokosc; // Rozmiar tablicy
  46.     int **Macierz1 ,**Macierz2 ,**Wynik; // Tablice dla macierz 1 i 2 i dla wyniku
  47.  
  48.     printf("Podaj wysokosc macierzy: "); // Pobranie wysokosci
  49.     scanf_s("%d", &Szerokosc);
  50.  
  51.     printf("Podaj szerokosc macierzy: "); // Pobranie szerokosci
  52.     scanf_s("%d", &Wysokosc);
  53.  
  54.     Macierz1 = Allokuj(Szerokosc, Wysokosc); // Alokacja M1
  55.     Macierz2 = Allokuj(Szerokosc, Wysokosc); // Alokacja M2
  56.     Wynik = Allokuj(Szerokosc, Wysokosc); // Alokacja tablicy wyniku
  57.  
  58.     printf("\nPodaj macierz 1 \n");
  59.     Wczytaj(Macierz1, Szerokosc, Wysokosc); // Wczytanie M1
  60.     printf("\nPodaj macierz 2 \n");
  61.     Wczytaj(Macierz2, Szerokosc, Wysokosc); // Wczytanie M2
  62.  
  63.     printf("\nMacierz 1 \n");
  64.     Wyswietl(Macierz1, Szerokosc, Wysokosc); //Wyswietlenie M1
  65.     printf("\nMacierz 2 \n");
  66.     Wyswietl(Macierz2, Szerokosc, Wysokosc); // Wyswietlenie M2
  67.  
  68.     printf("\nWynik\n");
  69.  
  70.     Mnozenie(Wynik ,Macierz1, Macierz2, Szerokosc, Wysokosc); // Wynik = Macierz1 * Macierz2
  71.  
  72.     Wyswietl(Wynik, Szerokosc, Wysokosc); // Wyswietlenie wyniku
  73.  
  74.     Zwolnij(Macierz1, Szerokosc, Wysokosc); // Zwalnianie M1
  75.     Zwolnij(Macierz2, Szerokosc, Wysokosc); // Zwalnianie M2
  76.     Zwolnij(Wynik, Szerokosc, Wysokosc); // Zwalnianie M2
  77.  
  78.     _getch();
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement