C++實現轉置矩陣的循環

前言

矩陣的轉置主要考查我們對循環的使用,通過簡單的循環結構,我們可以很方便的完成矩陣的轉置。

在這裡插入圖片描述

一、思路分析

轉置矩陣與原矩陣的區別在於行列交換,我們可以構建一個二維數組完成對原矩陣的存儲,我們隻需將每個元素與其行列相反的位置處的元素進行交換,就可完成對矩陣的轉置。

在這裡插入圖片描述

二、代碼實現

1.轉置矩陣函數

我們首先編寫一個函數,完成對矩陣的轉置。

代碼如下(示例):

/* 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;
}

2.調用函數實現轉置矩陣

我們在主函數中隻需調用已經寫好的函數,對轉置前後的矩陣分別輸出即可。

代碼如下(示例):

/* 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++實現轉置矩陣的循環的文章就介紹到這瞭,更多相關C++轉置矩陣循環內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: