以下是引用许一民在2007-11-8 12:43:44的发言:
for(j=0;j<i;j++)已经保证了矩阵的转置,只不过对角线上的数未动而已。
若是for(i=0;i<4;i++)与for(j=0;j<4;j++)嵌套,举个例子吧:i=1,j=3时a[1][3]与a[3][1]互换了一次,而之后又会遇到i=3,j=1,a[3][1]与a[1][3]会再次互换,也就是说,矩阵被两次转置,还原回来了!
for(j=0;j<i;j++)已经保证了矩阵的转置,只不过对角线上的数未动而已。
若是for(i=0;i<4;i++)与for(j=0;j<4;j++)嵌套,举个例子吧:i=1,j=3时a[1][3]与a[3][1]互换了一次,而之后又会遇到i=3,j=1,a[3][1]与a[1][3]会再次互换,也就是说,矩阵被两次转置,还原回来了!
懂了!一语道破,谢谢!
----------------解决方案--------------------------------------------------------
终于懂了,楼上许多朋友知是知道,但就是表达的不是很清楚,希望以后多象九楼的那为位朋友一样举几个例子,那样就
一目了然了!
还是要谢谢大家的帮助!
----------------解决方案--------------------------------------------------------
楼上已经把原因说了.当j<i时.对角线不变,可以保证转换了..当j<4时.第一次循环是换了,以后每执行一次.就恢复一点,当全部执行完之后.就全部恢复成原数组的东西了.
----------------解决方案--------------------------------------------------------
属于第二个循环 矩阵转置问题
----------------解决方案--------------------------------------------------------