作者HuangTzHuan ()
看板C_and_CPP
标题Re: [问题] 矩阵!!限定只能用两个矩阵...
时间Wed Nov 11 11:38:59 2009
※ 引述《moon2519 (~辉~)》之铭言:
: #include <cstdlib>
: #include <iostream>
: using namespace std;
: int main(int argc, char *argv[])
: {
: int matA[3][3] = { {1,0,3},
: {0,1,4},
: {5,0,1} };
: int matB[3][3] = { {1,0,0},
: {0,1,0},
: {0,0,1} };
: for(int i=1; i<=3 ;i++){ //执行for回圈用於控制i列
: for(int j=1; j<=3 ;j++){ //执行for回圈用於控制j行
: matA[i][j]=matA[i][j]*matB[j][i]; //矩阵相乘
: cout<<matA[i][j]; //印出值
: }
: cout<<endl;
: }
: system("PAUSE");
: return EXIT_SUCCESS;
: }
如果可以开一个 row 的记忆体的话
可以这样做:
for (size_t r = 0; r < 3; ++r) {
int row[3] = {0};
for (size_t c = 0; c < 3; ++c)
for (size_t k = 0; k < 3; ++k)
row[c] += matA[r][k] * matB[k][c];
for (size_t c = 0; c < 3; ++c)
matA[r][c] = row[c];
}
不过如果连那个 row 都不能开的话
我就不知道怎麽做了 XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.49
1F:→ MOONRAKER:记忆体使用O(0)的演算法,这老师太狠了!!! 11/11 14:35