其实题干有问题,这就不是转置,按对角线翻转就好了
#include<iostream> #include<vector> using namespace std; int main(){ int N; while(cin >> N){ vector<vector<int>> nums(N, vector<int>(N)); for(int i = 0; i < N; i ++) for(int j = 0; j < N; j ++) cin >> nums[i][j]; // 按对角线翻转 for(int i = 0; i < N; i ++) for(int j = 0; j < i; j ++) swap(nums[i][j], nums[j][i]); for(int i = 0; i < N; i ++){ for(int j = 0; j < N; j ++){ cout << nums[i][j] << " "; } cout << endl; } } return 0; }