码迷,mamicode.com
首页 > 编程语言 > 详细

写一个函数,使给定的一个3X3的二维整型数组转置,即行列互换。

时间:2020-07-01 22:19:11      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:个数   clu   中间   tar   原来   根据   示例   print   std   

4、写一个函数,使给定的一个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;
}

运行结果:

技术图片

写一个函数,使给定的一个3X3的二维整型数组转置,即行列互换。

标签:个数   clu   中间   tar   原来   根据   示例   print   std   

原文地址:https://www.cnblogs.com/weiyidedaan/p/13221581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!