将一个5×5的矩阵转置,转置在函数中实现

用指针做的,C语言课程习题里的

第1个回答  2013-06-01
这个好做呀~~
比如有a[5][5]
有两种方法,一种是重申请一个a[5][5]大的数组,然后以行列号交换依次填入a[5][5]中
另一种是不用申请新数组,接直在这个里面进行交换操作只交换一个三角形区域即可~~本回答被网友采纳
第2个回答  2013-06-01
实现
脑海里抽象下
假设矩阵为了
****
&&&&
####
@@@@
用FOR循环在交换第一行数值到第一列后
*&#@
*&&&
*###
*@@@
注意 控制好 几个循环体变量的值
现在只对
&&&
###
@@@
进行交换 程序呈一个对角线减短的趋势 越往后交换 循环的次数越少 以此类推 第三次交换的时候
交换的是
##
@@
剩下的看你的了
第3个回答  2013-06-01
下面是实现的函数,算法的关键就是交换M[i][j]与M[j][i]
[code]
void Multiply(int ** M)
{
int i = 0;
int j = 0;
int t = 0;

for (i = 0; i < 5; ++ i)
{
for (j = 0; j < 5; ++ j)
{
t = M[i][j];
M[i][j] = M[j][i];
M[j][i] = t;
}
}
}
[/code]
相似回答