矩阵变换¶
我们下标从 1 开始。 a 已读入,n 行 m 列,行列数为 1~100;a、b 是全局数组,类型为 int[110][110]。
矩阵转置¶
行列互换,n × m 转置后是 m × n。
只要求输出,可以改变遍历顺序。
for (int j = 1; j <= m; j++) {
for (int i = 1; i <= n; i++) {
cout << a[i][j] << ' ';
}
cout << '\n';
}
只改变输出顺序,a 没变。
盯住原位置,看它移动到哪里。
盯住新位置,看它从哪里来。
选一种写法,结果存入 b,按 m 行 n 列输出。
向右旋转 90°(难)¶
这里用 n × n 的方阵。
盯住 a[i][j],看旋转到哪里。
盯住 b[i][j],看从哪里来。
选一种写法,结果存入 b,别覆盖原数组 a。
向左旋转,自己画一个小方阵,推一推位置关系。
要保存变换结果,就存入 b;只换输出顺序,a 不变。