C++實現(xiàn)轉(zhuǎn)置矩陣的循環(huán)
前言
矩陣的轉(zhuǎn)置主要考查我們對循環(huán)的使用,通過簡單的循環(huán)結(jié)構(gòu),我們可以很方便的完成矩陣的轉(zhuǎn)置。

一、思路分析
轉(zhuǎn)置矩陣與原矩陣的區(qū)別在于行列交換,我們可以構(gòu)建一個二維數(shù)組完成對原矩陣的存儲,我們只需將每個元素與其行列相反的位置處的元素進行交換,就可完成對矩陣的轉(zhuǎn)置。

二、代碼實現(xiàn)
1.轉(zhuǎn)置矩陣函數(shù)
我們首先編寫一個函數(shù),完成對矩陣的轉(zhuǎn)置。
代碼如下(示例):
/* Alkaid#3529 */
// 轉(zhuǎn)職矩陣函數(shù),按照指定的矩陣大小將矩陣轉(zhuǎn)置
void transpose_matrix(int matrix[10][10], int a);
// 函數(shù)實現(xiàn)
void transpose_matrix(int matrix[10][10], int a) // int matrix[10][10] 為存儲矩陣的數(shù)組,int a 為所需轉(zhuǎn)置矩陣的大小
{
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;
}
2.調(diào)用函數(shù)實現(xiàn)轉(zhuǎn)置矩陣
我們在主函數(shù)中只需調(diào)用已經(jīng)寫好的函數(shù),對轉(zhuǎn)置前后的矩陣分別輸出即可。
代碼如下(示例):
/* Alkaid#3529 */
#include<iostream>
using namespace std;
// 轉(zhuǎn)職矩陣函數(shù),按照指定的矩陣大小將矩陣轉(zhuǎn)置
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èi)) :\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轉(zhuǎn)置后的矩陣為:\n";
// 輸出轉(zhuǎ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] 為存儲矩陣的數(shù)組,int a 為所需轉(zhuǎn)置矩陣的大小
{
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;
}
運行程序,看看效果如何。


正常運行,且功能完整,可以放心復制黏貼使用。
總結(jié)
矩陣轉(zhuǎn)置,除了本文介紹的方法外,還可以利用三元組的形式完成對稀疏矩陣的轉(zhuǎn)置,感興趣的話不妨點個關(guān)注,會在后續(xù)的數(shù)據(jù)和結(jié)構(gòu)與算法專欄進行詳細講解哦!
到此這篇關(guān)于C++實現(xiàn)轉(zhuǎn)置矩陣的循環(huán)的文章就介紹到這了,更多相關(guān)C++轉(zhuǎn)置矩陣循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VisualStudio2022提交git代碼的方法實現(xiàn)
本文主要介紹了VisualStudio2022提交git代碼的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07
VS2010+Opencv+MFC讀取圖像和視頻顯示在Picture控件
這篇文章主要為大家詳細介紹了VS2010+Opencv+MFC讀取圖像和視頻顯示在Picture控件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08
Linux網(wǎng)絡編程之基于UDP實現(xiàn)可靠的文件傳輸示例
這篇文章主要介紹了Linux網(wǎng)絡編程之基于UDP實現(xiàn)可靠的文件傳輸示例,是很實用的技巧,需要的朋友可以參考下2014-08-08
C++實現(xiàn)神經(jīng)BP神經(jīng)網(wǎng)絡
這篇文章主要為大家詳細介紹了C++實現(xiàn)神經(jīng)BP神經(jīng)網(wǎng)絡,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-05-05

