矩阵乘法.c 980 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include <stdio.h>
  2. void matrix_multiply(int A[][10], int B[][10], int C[][10], int A1, int A2, int B1, int B2) {
  3. int i,j,k;
  4. for (i = 0; i < A1; ++i) {
  5. for (j = 0; j < B2; ++j) {
  6. C[i][j] = 0;
  7. for (k = 0; k < A2; ++k) {
  8. C[i][j] += A[i][k] * B[k][j];
  9. }
  10. }
  11. }
  12. }
  13. int main() {
  14. int A1, A2, B1, B2,i,j;
  15. scanf("%d %d %d %d", &A1, &A2, &B1, &B2);
  16. int A[10][10], B[10][10], C[10][10];
  17. for (i = 0; i < A1; ++i) {
  18. for (j = 0; j < A2; ++j) {
  19. scanf("%d", &A[i][j]);
  20. }
  21. }
  22. for (i = 0; i < B1; ++i) {
  23. for (j = 0; j < B2; ++j) {
  24. scanf("%d", &B[i][j]);
  25. }
  26. }
  27. matrix_multiply(A, B, C, A1, A2, B1, B2);
  28. for (i = 0; i < A1; ++i) {
  29. for (j = 0; j < B2; ++j) {
  30. printf("%d", C[i][j]);
  31. if (j != B2 - 1) {
  32. printf(" ");
  33. }
  34. }
  35. printf("\n");
  36. }
  37. return 0;
  38. }