//(c)Terminator
#include <iostream>
#include <iterator>
using namespace std;
int main(void){
const int N = 3;
int ma[N][N] = {
{ 1, 2, 3 },
{ 4, 3, 1 },
{ 0, 1, 2 }
};
int mb[N][N] = {
{ 2, 1, 8 },
{ 3, 4, 1 },
{ 9, 4, 2 }
};
int mc[N][N];
int i;
//перемножение
for(int ir = 0; ir < N; ++ir) {
for(int c = 0; c < N; ++c) {
mc[ir][c] = 0;
for(int r = 0; r < N; ++r)
mc[ir][c] += ma[ir][r] * mb[r][c];
}
}
//вывести результирующею матрицу
ostream_iterator<int> _op(cout, "\t");
for(i = 0; i < N; ++i){
copy(mc[i], mc[i] + N, _op);
cout << endl;
}
//...
//транспонирование
for(i = 0; i < N; ++i) {
for(int j = i; j < N; ++j)
swap(mc[i][j], mc[j][i]);
}
cout << endl;
for(i = 0; i < N; ++i){
copy(mc[i], mc[i] + N, _op);
cout << endl;
}
return 0;
}
Ly8oYylUZXJtaW5hdG9yCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCgppbnQgbWFpbih2b2lkKXsKCWNvbnN0IGludCBOID0gMzsKCglpbnQgbWFbTl1bTl0gPSB7CgkJeyAxLCAyLCAzIH0sCgkJeyA0LCAzLCAxIH0sCgkJeyAwLCAxLCAyIH0KCX07CgkKCWludCBtYltOXVtOXSA9IHsKCQl7IDIsIDEsIDggfSwKCQl7IDMsIDQsIDEgfSwKCQl7IDksIDQsIDIgfQoJfTsKCglpbnQgbWNbTl1bTl07CglpbnQgaTsKCgoJLy/Qv9C10YDQtdC80L3QvtC20LXQvdC40LUKCWZvcihpbnQgaXIgPSAwOyBpciA8IE47ICsraXIpIHsKCQlmb3IoaW50IGMgPSAwOyBjIDwgTjsgKytjKSB7CgkJCW1jW2lyXVtjXSA9IDA7CgkJCWZvcihpbnQgciA9IDA7IHIgPCBOOyArK3IpIAoJCQkJbWNbaXJdW2NdICs9IG1hW2lyXVtyXSAqIG1iW3JdW2NdOwoJCX0KCX0KCgkvL9Cy0YvQstC10YHRgtC4INGA0LXQt9GD0LvRjNGC0LjRgNGD0Y7RidC10Y4g0LzQsNGC0YDQuNGG0YMKCW9zdHJlYW1faXRlcmF0b3I8aW50PiBfb3AoY291dCwgIlx0Iik7Cglmb3IoaSA9IDA7IGkgPCBOOyArK2kpewoJCWNvcHkobWNbaV0sIG1jW2ldICsgTiwgX29wKTsKCQljb3V0IDw8IGVuZGw7Cgl9CgoJLy8uLi4KCgkvL9GC0YDQsNC90YHQv9C+0L3QuNGA0L7QstCw0L3QuNC1Cglmb3IoaSA9IDA7IGkgPCBOOyArK2kpIHsKCQlmb3IoaW50IGogPSBpOyBqIDwgTjsgKytqKQoJCQlzd2FwKG1jW2ldW2pdLCBtY1tqXVtpXSk7Cgl9CgoJY291dCA8PCBlbmRsOwoJZm9yKGkgPSAwOyBpIDwgTjsgKytpKXsKCQljb3B5KG1jW2ldLCBtY1tpXSArIE4sIF9vcCk7CgkJY291dCA8PCBlbmRsOwoJfQoJcmV0dXJuIDA7Cn0K