c语言|C语言-矩阵转置

c语言|C语言-矩阵转置


①目标
将一个二维数组表示的矩阵转置

②命令行
#include<stdio.h>
#include< stdlib.h>
~
【c语言|C语言-矩阵转置】③定义函数
void fun(int array[3
[3
)
{int ijt;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
/*注意:只遍历了矩阵的右上半部分 。
如果for(j=0;j<3;j++表示遍历矩阵全部元素 , 右上与左下交换 , 左下又与右上交换 , 导致重复转置 , 矩阵没有变化 。 */
{t=array[i
[j
;
array[i
[j
=array[j
[i
;
array[j
[i
=t;
/*交换语句 , 矩阵右上半部分 , 与对应左下半部分 , 元素交换 , 完成转置*/

~
④主函数(调用)
void main()
{int ij;
int array[3
[3
={{123{456{789;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
/*输出原矩阵 , 遍历全部*/
printf(\"%7d\"array[i
[j
);
printf(\"\\");
fun(array);
/*利用fun函数完成转置*/
printf(\"converted array:\\");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf(\"%7d\"array[i
[j
);
printf(\"\\");