Advertisement
wojiaocbj

P

Jun 9th, 2022
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.95 KB | None | 0 0
  1. #include <stdio.h>
  2. long long A[30][30], B[30][30], C[30][30];
  3. void mat_mult_i64(int m, int n, int p){
  4.     int i, j, k;
  5.     for(i = 0; i < m; i++){
  6.         for(j = 0; j < p; j++){
  7.             C[i][j] = 0;
  8.             for(k = 0; k < n; k++){
  9.                 C[i][j] += A[i][k] * B[k][j];
  10.             }
  11.         }
  12.     }
  13. }
  14. int main(){
  15.     int row[30] = { 0 }, col[30] = { 0 };
  16.     int n, i, j, k;
  17.     scanf("%d", &n);
  18.     for(i = 0; i < n; i++){
  19.         scanf("%d%d", row + i, col + i);
  20.     }
  21.     for(i = 0; i < row[0]; i++){
  22.         for(j = 0; j < col[0]; j++){
  23.             scanf("%lld", &(A[i][j]));
  24.         }
  25.     }
  26.     for(k = 1; k < n; k++){
  27.         for(i = 0; i < row[k]; i++){
  28.             for(j = 0; j < col[k]; j++){
  29.                 scanf("%lld", &(B[i][j]));//input b
  30.             }
  31.         }
  32.         mat_mult_i64(row[0], col[k - 1], col[k]);
  33.         for(i = 0; i < row[0]; i++){
  34.             for(j = 0; j < col[k]; j++){
  35.                 A[i][j] = C[i][j];//move C to A
  36.             }
  37.         }
  38.     }
  39.     for(i = 0; i < row[0]; i++){
  40.         for(j = 0; j < col[n-1]; j++){
  41.             printf("%lld ", A[i][j]);
  42.         }
  43.         putchar('\n');
  44.     }
  45.     return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement