// 課題043
//3*3のarrayAの転置行列を求め、arrayBとの行列同士の積を求めるプログラム
// 2026.07.04 24A2021 伊藤宗兼
#include <stdio.h>
#define ARRAYSIZE 3
int main(void) {
int arrayA[ARRAYSIZE][ARRAYSIZE] = { {1,1,1},{2,2,2},{3,3,3} };
int arrayB[ARRAYSIZE][ARRAYSIZE] = { {1,1,1},{1,1,1},{1,1,1} };
int arrayC[ARRAYSIZE][ARRAYSIZE];//arrayAの転置行列
int arrayD[ARRAYSIZE][ARRAYSIZE];//積の結果
int i, j, k;
//arrayAの転置行列を求める----------------------------------------------------
for (i = 0; i < ARRAYSIZE; i++) {//結果の行番号
for (j = 0; j < ARRAYSIZE; j++) {//結果の列番号
arrayC[j][i] = arrayA[i][j];
}
}
//転置行列とarrayBの積を求める-----------------------------------------------
for (i = 0; i < ARRAYSIZE; i++) {//結果の行番号
for (j = 0; j < ARRAYSIZE; j++) {//結果の列番号
arrayD[i][j] = 0;//初期化
for (k = 0; k < ARRAYSIZE; k++) {//内積計算用
arrayD[i][j] += arrayC[i][k] * arrayB[k][j];
}
}
}
//行列の式を見やすく表示する-------------------------------------------------
for (i = 0; i < ARRAYSIZE; i++) {
for (j = 0; j < ARRAYSIZE; j++)
if (i == ARRAYSIZE / 2)
else
for (j = 0; j < ARRAYSIZE; j++)
if (i == ARRAYSIZE / 2)
else
for (j = 0; j < ARRAYSIZE; j++)
}
return 0;
}
Ly8g6Kqy6aGMMDQzCi8vMyoz44GuYXJyYXlB44Gu6Lui572u6KGM5YiX44KS5rGC44KB44CBYXJyYXlC44Go44Gu6KGM5YiX5ZCM5aOr44Gu56mN44KS5rGC44KB44KL44OX44Ot44Kw44Op44OgCi8vICAgICAgICAgICAgIDIwMjYuMDcuMDQgMjRBMjAyMSDkvIrol6TlrpflhbwKCiNpbmNsdWRlIDxzdGRpby5oPgojZGVmaW5lIEFSUkFZU0laRSAzCmludCBtYWluKHZvaWQpIHsKCWludCBhcnJheUFbQVJSQVlTSVpFXVtBUlJBWVNJWkVdID0geyB7MSwxLDF9LHsyLDIsMn0sezMsMywzfSB9OwoJaW50IGFycmF5QltBUlJBWVNJWkVdW0FSUkFZU0laRV0gPSB7IHsxLDEsMX0sezEsMSwxfSx7MSwxLDF9IH07CglpbnQgYXJyYXlDW0FSUkFZU0laRV1bQVJSQVlTSVpFXTsvL2FycmF5QeOBrui7oue9ruihjOWIlwoJaW50IGFycmF5RFtBUlJBWVNJWkVdW0FSUkFZU0laRV07Ly/nqY3jga7ntZDmnpwKCWludCBpLCBqLCBrOwoKCS8vYXJyYXlB44Gu6Lui572u6KGM5YiX44KS5rGC44KB44KLLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJZm9yIChpID0gMDsgaSA8IEFSUkFZU0laRTsgaSsrKSB7Ly/ntZDmnpzjga7ooYznlarlj7cKCQlmb3IgKGogPSAwOyBqIDwgQVJSQVlTSVpFOyBqKyspIHsvL+e1kOaenOOBruWIl+eVquWPtwoJCQlhcnJheUNbal1baV0gPSBhcnJheUFbaV1bal07CgkJfQoJfQoJLy/ou6Lnva7ooYzliJfjgahhcnJheULjga7nqY3jgpLmsYLjgoHjgostLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJZm9yIChpID0gMDsgaSA8IEFSUkFZU0laRTsgaSsrKSB7Ly/ntZDmnpzjga7ooYznlarlj7cKICAgICAgICBmb3IgKGogPSAwOyBqIDwgQVJSQVlTSVpFOyBqKyspIHsvL+e1kOaenOOBruWIl+eVquWPtwogICAgICAgICAgICBhcnJheURbaV1bal0gPSAwOy8v5Yid5pyf5YyWCiAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBBUlJBWVNJWkU7IGsrKykgey8v5YaF56mN6KiI566X55SoCiAgICAgICAgICAgICAgICBhcnJheURbaV1bal0gKz0gYXJyYXlDW2ldW2tdICogYXJyYXlCW2tdW2pdOyAKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCgkvL+ihjOWIl+OBruW8j+OCkuimi+OChOOBmeOBj+ihqOekuuOBmeOCiy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCWZvciAoaSA9IDA7IGkgPCBBUlJBWVNJWkU7IGkrKykgewoJCWZvciAoaiA9IDA7IGogPCBBUlJBWVNJWkU7IGorKykKCQkJcHJpbnRmKCIlM2QiLCBhcnJheUNbaV1bal0pOwoJCWlmIChpID09IEFSUkFZU0laRSAvIDIpCgkJCXByaW50ZigiIMOXIik7CgkJZWxzZQoJCQlwcmludGYoIuOAgCIpOwoJCWZvciAoaiA9IDA7IGogPCBBUlJBWVNJWkU7IGorKykKCQkJcHJpbnRmKCIlM2QiLCBhcnJheUJbaV1bal0pOwoJCWlmIChpID09IEFSUkFZU0laRSAvIDIpCgkJCXByaW50ZigiID0iKTsKCQllbHNlCgkJCXByaW50Zigi44CAIik7CgkJZm9yIChqID0gMDsgaiA8IEFSUkFZU0laRTsgaisrKQoJCQlwcmludGYoIiUzZCIsIGFycmF5RFtpXVtqXSk7CgkJcHJpbnRmKCJcbiIpOwoJfQoJcHJpbnRmKCJcbiDntYLkuobjgZfjgb7jgZnjgIJcbiIpOwoJcmV0dXJuIDA7Cn0=