寫一個函數,使給定的一個3*3的二維整型數組轉置,即行列互換


寫一個函數,使給定的一個3X3的二維整型數組轉置,即行列互換

題目解析:

進行數組的行列互換,其關鍵在於數組互換的表達式 ar[i] [j] = ar[j] [i];其次在循環的時候,內層循環不能到達最大列,需要根據此時是第幾行的交換來決定循環的次數,否則有可能數組行列交換之后最后又交換回原來的形狀了。

代碼示例

#include<stdio.h>

void PrintArray(int ar[3][3])
{
	for(int i=0; i<3; ++i)
	{
		for(int j=0; j<3; ++j)
		{
			printf("%d ", ar[i][j]);
		}
		printf("\n");
	}
}

void ReverseArray(int ar[3][3])
{
	int tmp;
	for(int i=0; i<3; ++i)
	{
		for(int j=0; j<i; ++j)
		{
			if(i != j) //中間數不發生變化
			{
				//交換兩個數
				tmp = ar[i][j];
				ar[i][j] = ar[j][i];
				ar[j][i] = tmp;
			}
			
		}
	}
}

int main()
{
	int array[3][3] = 
	{
		{1,2,3},
		{4,5,6},
		{7,8,9}
	};

	printf("轉置前:\n");
	PrintArray(array);

	//進行數組轉置
	ReverseArray(array);

	printf("轉置后:\n");
	PrintArray(array);

	return 0;
}

運行結果:

寫一個函數,使給定的一個3*3的二維整型數組轉置,即行列互換


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM