Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- int getRandom(int seed){
- srand(seed);
- return rand();
- }
- int main(int argc, char *argv[])
- {
- int **A,**B,**C,m,n,p,i,j,k,s;
- int l=time(NULL);
- // odczytujemy wymiary macierzy
- m = atoi(argv[1]);
- n = atoi(argv[2]);
- p= atoi(argv[3]);
- // cin >> m >> n >> p;
- // tworzymy macierze o odpowiednich rozmiarach
- A = (int**)malloc(m*sizeof(int*));
- B =(int**)malloc(n*sizeof(int*));
- C = (int**)malloc(m*sizeof(int*));
- for(i = 0; i < m; i++)
- {
- A[i] = (int*)malloc(n*sizeof(int));
- C[i] = (int*)malloc(p*sizeof(int));
- }
- for(i = 0; i < n; i++) B[i] =(int*)malloc(p*sizeof(int));
- // odczytujemy dane dla macierzy A
- for(i = 0; i < m; i++)
- for(j = 0; j < n; j ++) A[i][j] = getRandom(l)%10;
- // odczytujemy dane dla macierzy B
- for(i = 0; i < n; i++)
- for(j = 0; j < p; j++) B[i][j] = getRandom(l)%10;
- //cout << endl;
- // mnożymy macierz A przez B i wynik umieszczamy w C
- for(i = 0; i < m; i++)
- for(j = 0; j < p; j++)
- {
- s = 0;
- for(k = 0; k < n; k++) s += A[i][k] * B[k][j];
- C[i][j] = s;
- }
- // wyprowadzamy wynik mnożenia w C
- //cout << "C = A x B:\n";
- for(i = 0; i < m; i++)
- {
- for(j = 0; j < p; j++)printf("%d", C[i][j] );
- // cout << endl;
- }
- // zwalniamy pamięć zajętą przez macierze
- /*
- for(i = 0; i < m; i++)
- {
- delete [] A[i];
- delete [] C[i];
- }
- for(i = 0; i < n; i++) delete [] B[i];
- delete [] A;
- delete [] B;
- delete [] C;
- */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement