题解 | #矩阵交换#
矩阵交换
https://www.nowcoder.com/practice/ec44d4ff8c794b2f9205bdddbde96817
#include <iostream> using namespace std; int main() { int a, b, f, e; int c[11][11]; int m[11]; cin >> a >> b; for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { cin >> c[i][j]; } } int k; cin >> k; for (int k1 = 0; k1 < k; k1++) { char d; cin >> d; if (d == 'r') { cin >> e >> f; e--; f--; for (int i = 0; i < b; i++) { m[i] = c[e][i]; c[e][i] = c[f][i]; c[f][i] = m[i]; } } else if (d == 'c') { cin >> e >> f; e--; f--; for (int i = 0; i < a; i++) { m[i] = c[i][e]; c[i][e] = c[i][f]; c[i][f] = m[i]; } } else if (d == 't') { cin >> e >> f; } } for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { cout << c[i][j] << " "; } cout << endl; } } // 64 位输出请用 printf("%lld")
这里需要注意的是
写入的e行f列要减去1!因为数组的index是从0开始的