矩阵的转置

来源:百度知道 编辑:UC知道 时间:2024/07/05 13:47:17
在主函数定义一个3×3的矩阵,要求:定义一个函数完成功能:原数组不变,仅在打印时转置

怎么写代码?
谢谢二位的回答,你们讲的我都会。我的意思是:怎么用一个函数调用来完成矩阵转置的功能,比如说:在main函数里调用trans_a函数来完成3×3矩阵的转置,并要求原数组不变,仅在打印时转置

原数组要不变,非要搞个函数去做转置? 那你在转置函数中,将转过的数组放到另一数组,打印时只打这个数组就行了
void rev(int m[][3],int n[][3])
{
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
n[j][i]=m[i][j];
}
printf("\n");
}
}

int mian()
{
int a[3][3]={{0,1,2,},{3,4,5},{6,7,8}};
int b[3][3]={0};

///////打印原矩阵////////////
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}

rev(a,b);//调用函数

////////打印转后的矩阵////////
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
printf("%d",b[i][j]);
}
printf("\n");
}

return 0;
}

其实这等于画蛇添足了,完全没有必要再搞这个函数,因为你的转置动作就是打印动作

是定义的二维数组吗,教科书上的示例一般会用i,j变量的嵌套For语句来控制现实矩阵,如果你看多了,会发现把两个嵌套里外互换一下就能达到想要的效果