您好,登錄后才能下訂單哦!
這篇文章主要介紹了C++如何實現轉置矩陣的循環,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
矩陣的轉置主要考查我們對循環的使用,通過簡單的循環結構,我們可以很方便的完成矩陣的轉置。
轉置矩陣與原矩陣的區別在于行列交換,我們可以構建一個二維數組完成對原矩陣的存儲,我們只需將每個元素與其行列相反的位置處的元素進行交換,就可完成對矩陣的轉置。
我們首先編寫一個函數,完成對矩陣的轉置。
代碼如下(示例):
/* Alkaid#3529 */ // 轉職矩陣函數,按照指定的矩陣大小將矩陣轉置 void transpose_matrix(int matrix[10][10], int a); // 函數實現 void transpose_matrix(int matrix[10][10], int a) // int matrix[10][10] 為存儲矩陣的數組,int a 為所需轉置矩陣的大小 { int mid = 0; // 中間量,輔助值的傳遞 for (int i = 0; i < a; i++) // 從行開始,逐行檢索 { for (int j = i + 1; j < a; j++) // 對該行每一列的元素檢索 { // 將對應位置的兩個元素交換位置 mid = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = mid; } } return; }
我們在主函數中只需調用已經寫好的函數,對轉置前后的矩陣分別輸出即可。
代碼如下(示例):
/* Alkaid#3529 */ #include<iostream> using namespace std; // 轉職矩陣函數,按照指定的矩陣大小將矩陣轉置 void transpose_matrix(int matrix[10][10], int a); int main() { int matrix[10][10]; int size = 0; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { matrix[i][j] = (i * i + j * i + j ^ i) % 10; } } // 讀入要求的矩陣大小,方便起見,使用矩陣的默認值,默認為方陣 cout << "請輸入矩陣的尺寸 (方便起見,矩陣大小設在10以內) :\n"; cout << "size = "; cin >> size; cout << "\n原矩陣為:\n"; // 輸出原矩陣 for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { cout << matrix[i][j] << " "; } cout << endl; } transpose_matrix(matrix, size); cout << "\n轉置后的矩陣為:\n"; // 輸出轉置后的矩陣 for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { cout << matrix[i][j] << " "; } cout << endl; } return 0; } void transpose_matrix(int matrix[10][10], int a) // int matrix[10][10] 為存儲矩陣的數組,int a 為所需轉置矩陣的大小 { int mid = 0; // 中間量,輔助值的傳遞 for (int i = 0; i < a; i++) // 從行開始,逐行檢索 { for (int j = i + 1; j < a; j++) // 對該行每一列的元素檢索 { // 將對應位置的兩個元素交換位置 mid = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = mid; } } return; }
運行程序,看看效果如何。
正常運行,且功能完整,可以放心復制黏貼使用。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“C++如何實現轉置矩陣的循環”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。