// 矩阵转置 #includeusing namespace std; // 二维数据 struct TD_Data { double val_1; double val_2; }; TD_Data* Matrix(const TD_Data* matrix, int size_r, int size_c, TD_Data* new_matrix) { // 1.打印原数据 int flag = 0; for (int i = 0; i < size_r * size_c; i++){ cout << "(" << matrix[i].val_1 << ',' << matrix[i].val_2 << ')' << " "; flag++; if (flag == size_c) { cout << endl; flag = 0; } } // 2.转置 for (int row = 0; row < size_r; row++) { for (int col = 0; col < size_c; col++) { new_matrix[col * size_r + row] = matrix[row * size_c + col]; } } // 3.打印结果矩阵 flag = 0; for (int i = 0; i < size_r * size_c; i++) { cout << "(" << new_matrix[i].val_1 << ',' << new_matrix[i].val_2 << ')' << " "; flag++; if (flag == size_r) { cout << endl; flag = 0; } } // 返回值 return new_matrix; } int main() { TD_Data arr[6] = { {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12} }; // 3r 2c int row = -1, col = -1; cout << "请输入矩阵的行数和列数:"; cin >> row >> col; TD_Data* brr = new TD_Data[row * col]; Matrix(arr, row, col, brr); //int arr[3][2] = { // {1,2}, // {3,4}, // {5,6} //}; //int brr[2][3] = { 0 }; // //for (int i = 0; i < 3; i++) //{ // for (int j = 0; j < 2; j++) // { // brr[j][i] = arr[i][j]; // } //} // //for (int i = 0; i < 2; i++) //{ // for (int j = 0; j < 3; j++) // { // cout << brr[i][j] << " "; // } // cout << endl; //} return 0; }
想要听详细讲解的小伙伴可以去这个链接了解哦:
【c/c++】一个视频理解数组和矩阵_哔哩哔哩_bilibili