73 lines
1.6 KiB
C
73 lines
1.6 KiB
C
|
#include <stdio.h>
|
|||
|
#include <stdlib.h>
|
|||
|
|
|||
|
void mul(int **a, int **b, int **c, int n) {
|
|||
|
int i, j, k, sum;
|
|||
|
for (i = 0; i < n; i++) {
|
|||
|
for (j = 0; j < n; j++) {
|
|||
|
sum = 0;
|
|||
|
for (k = 0; k < n; k++) {
|
|||
|
sum += a[i][k] * b[k][j];
|
|||
|
}
|
|||
|
c[i][j] = sum;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
int main() {
|
|||
|
int i, j, n = 2;
|
|||
|
|
|||
|
int ary_a[2][2]={{1,2},{3,4}};
|
|||
|
int ary_b[2][2]={{5,6},{7,8}};
|
|||
|
|
|||
|
// <20>ʺA<CABA><41><EFBFBD>t<EFBFBD>O<EFBFBD><4F><EFBFBD>鵹<EFBFBD>x<EFBFBD>}
|
|||
|
int **arr_a = (int **)malloc(n * sizeof(int *));
|
|||
|
int **arr_b = (int **)malloc(n * sizeof(int *));
|
|||
|
int **arr_c = (int **)malloc(n * sizeof(int *));
|
|||
|
|
|||
|
if (arr_a == NULL || arr_b == NULL || arr_c == NULL) {
|
|||
|
printf("<EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return 1;
|
|||
|
}
|
|||
|
|
|||
|
for (i = 0; i < n; i++) {
|
|||
|
arr_a[i] = (int *)malloc(n * sizeof(int));
|
|||
|
arr_b[i] = (int *)malloc(n * sizeof(int));
|
|||
|
arr_c[i] = (int *)malloc(n * sizeof(int));
|
|||
|
|
|||
|
if (arr_a[i] == NULL || arr_b[i] == NULL || arr_c[i] == NULL) {
|
|||
|
printf("<EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
return 1;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
for (i = 0; i < 2; i++) {
|
|||
|
for (j = 0; j < 2; j++) {
|
|||
|
arr_a[i][j] = ary_a[i][j];
|
|||
|
arr_b[i][j] = ary_b[i][j];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// <20>i<EFBFBD><69><EFBFBD>x<EFBFBD>}<7D><><EFBFBD>k
|
|||
|
mul(arr_a, arr_b, arr_c, n);
|
|||
|
|
|||
|
// <20><><EFBFBD>X<EFBFBD><58><EFBFBD>G
|
|||
|
for (i = 0; i < n; i++) {
|
|||
|
for (j = 0; j < n; j++) {
|
|||
|
printf("arr_c[%d][%d] = %d\n", i, j, arr_c[i][j]);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>
|
|||
|
for (i = 0; i < n; i++) {
|
|||
|
free(arr_a[i]);
|
|||
|
free(arr_b[i]);
|
|||
|
free(arr_c[i]);
|
|||
|
}
|
|||
|
free(arr_a);
|
|||
|
free(arr_b);
|
|||
|
free(arr_c);
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|