
C编程写一个函数,使给定的一个二维数组(3*4)进行转置,即行列在、互换,并输出转置前后的结果.(函数)
4个回答
展开全部
b[j] [i]=a[i] [j]这就是实现矩阵转置了。i行j列与j行i列进行交换,使用中间变量来实现交换值。
更多追问追答
追问
float f(int b[4][3])
{
int i,j,t;
int a[3][4];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
a[i][j]=i+j;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
b[i][j]=a[j][i];
for(i=0;i<4;i++)
for(j=0;j<3;j++)
t=b[i][j];
return(t);
}
void main()
{
int i,j,t;
t=f(t);
printf("%d",t);
}
追答
那个t=f(t)写错了,t不是一个数组,所以你传给f函数的参数有误,另外printf()这样写,是无法输出数组结果的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个是转置吗?先输入一个矩阵A m*n阶的,转置里面应先初始化一个矩阵B n*m的 记得要先初始化哦!然后利用for循环两层i,j
for i=0:n-1
for j=0:m-1
B(i,j)=B(j,i); 然后就行了试试吧
for i=0:n-1
for j=0:m-1
B(i,j)=B(j,i); 然后就行了试试吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//数组a[2][3]已知
int b[3][2],i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
b[j][i]=a[i][j];
int b[3][2],i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
b[j][i]=a[i][j];
追问
float f(int b[4][3])
{
int i,j,t;
int a[3][4];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
a[i][j]=i+j;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
b[i][j]=a[j][i];
for(i=0;i<4;i++)
for(j=0;j<3;j++)
t=b[i][j];
return(t);
}
void main()
{
int i,j,t;
t=f(t);
printf("%d",t);
}
哪错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询