其实题干有问题,这就不是转置,按对角线翻转就好了

#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;
}