Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <stdlib.h>
  4.  
  5. int getRandom(int seed){
  6. srand(seed);
  7. return rand();
  8. }
  9.  
  10. int main(int argc, char *argv[])
  11. {
  12. int **A,**B,**C,m,n,p,i,j,k,s;
  13.  
  14. int l=time(NULL);
  15. // odczytujemy wymiary macierzy
  16.  
  17. m = atoi(argv[1]);
  18. n = atoi(argv[2]);
  19. p= atoi(argv[3]);
  20. // cin >> m >> n >> p;
  21.  
  22. // tworzymy macierze o odpowiednich rozmiarach
  23.  
  24. A = (int**)malloc(m*sizeof(int*));
  25. B =(int**)malloc(n*sizeof(int*));
  26. C = (int**)malloc(m*sizeof(int*));
  27.  
  28. for(i = 0; i < m; i++)
  29. {
  30. A[i] = (int*)malloc(n*sizeof(int));
  31. C[i] = (int*)malloc(p*sizeof(int));
  32. }
  33.  
  34. for(i = 0; i < n; i++) B[i] =(int*)malloc(p*sizeof(int));
  35.  
  36. // odczytujemy dane dla macierzy A
  37.  
  38. for(i = 0; i < m; i++)
  39. for(j = 0; j < n; j ++) A[i][j] = getRandom(l)%10;
  40.  
  41. // odczytujemy dane dla macierzy B
  42.  
  43. for(i = 0; i < n; i++)
  44. for(j = 0; j < p; j++) B[i][j] = getRandom(l)%10;
  45.  
  46. //cout << endl;
  47.  
  48. // mnożymy macierz A przez B i wynik umieszczamy w C
  49.  
  50. for(i = 0; i < m; i++)
  51. for(j = 0; j < p; j++)
  52. {
  53. s = 0;
  54. for(k = 0; k < n; k++) s += A[i][k] * B[k][j];
  55. C[i][j] = s;
  56. }
  57.  
  58. // wyprowadzamy wynik mnożenia w C
  59.  
  60. //cout << "C = A x B:\n";
  61.  
  62. for(i = 0; i < m; i++)
  63. {
  64. for(j = 0; j < p; j++)printf("%d", C[i][j] );
  65. // cout << endl;
  66. }
  67.  
  68. // zwalniamy pamięć zajętą przez macierze
  69. /*
  70. for(i = 0; i < m; i++)
  71. {
  72. delete [] A[i];
  73. delete [] C[i];
  74. }
  75.  
  76. for(i = 0; i < n; i++) delete [] B[i];
  77. delete [] A;
  78. delete [] B;
  79. delete [] C;
  80. */
  81. return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement