#include <stdio.h>
void array_mul(int(*x)[2], int (*y)[2], int (*ans)[2]);
int main(void) {
int x[2][2] = {{1,2}, {3,4}}, y[2][2] = {{1,2}, {3,4}}, ans[2][2] = {0};
array_mul(x, y, ans);
for(int i=0; i<2; i++){
for(int j=0; j<2; j++){
printf("ans[%d][%d] = %d\n" ,i
,j
,ans
[i
][j
]); }
}
return 0;
}
void array_mul(int(*x)[2], int (*y)[2], int (*ans)[2]){
for(int i=0; i<2; i++){
for(int j=0; j<2; j++){
for(int k=0; k<2; k++){
ans[i][j] += x[i][k]*y[k][j];
}
}
}
}
//a00 = x00*y00 + x01*y10
//a01 = x00*y01 + x11*y11
//a10 = x10*y00 + x01*y10
//a11 = x10*y01 + x11*y11
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGFycmF5X211bChpbnQoKngpWzJdLCBpbnQgKCp5KVsyXSwgaW50ICgqYW5zKVsyXSk7CmludCBtYWluKHZvaWQpIHsKCWludCB4WzJdWzJdID0ge3sxLDJ9LCB7Myw0fX0sIHlbMl1bMl0gPSB7ezEsMn0sIHszLDR9fSwgYW5zWzJdWzJdID0gezB9OwoJYXJyYXlfbXVsKHgsIHksIGFucyk7Cglmb3IoaW50IGk9MDsgaTwyOyBpKyspewoJCWZvcihpbnQgaj0wOyBqPDI7IGorKyl7CgkJCXByaW50ZigiYW5zWyVkXVslZF0gPSAlZFxuIiAsaSxqLGFuc1tpXVtqXSk7CgkJfQoJfQoJcmV0dXJuIDA7Cn0KCnZvaWQgYXJyYXlfbXVsKGludCgqeClbMl0sIGludCAoKnkpWzJdLCBpbnQgKCphbnMpWzJdKXsKCWZvcihpbnQgaT0wOyBpPDI7IGkrKyl7CgkJZm9yKGludCBqPTA7IGo8MjsgaisrKXsKCQkJZm9yKGludCBrPTA7IGs8MjsgaysrKXsKCQkJCWFuc1tpXVtqXSArPSB4W2ldW2tdKnlba11bal07CgkJCX0KCQl9Cgl9CgkKfQoKCi8vYTAwID0geDAwKnkwMCArIHgwMSp5MTAgCi8vYTAxID0geDAwKnkwMSArIHgxMSp5MTEKLy9hMTAgPSB4MTAqeTAwICsgeDAxKnkxMAovL2ExMSA9IHgxMCp5MDEgKyB4MTEqeTEx