编写一个程序:求矩阵A的转置矩阵B,要求用指针型函数实现

fashionzhou 2005-04-07 07:13:54
假设该矩阵为a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},帮帮忙!
...全文
1670 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycom__net 2005-04-07
  • 打赏
  • 举报
回复
//
int main()
{
int i,j, list[3][4];
for(i=0; i<3; i++)
for(j=0; j<4; j++)

scanf("%d", &list[i][j]);
turn (list);
for(i=0; i<3; i++)
for(j=0; j<4; j++)
{
printf("%d ", list[i][j]);
if(j==3)printf("\n");
}

system("PAUSE");

}
//
写错了
ycom__net 2005-04-07
  • 打赏
  • 举报
回复
#include <stdlib.h>
#include<stdio.h>

int turn (int a[3][4])
{
int i,j,b[4][3];
for(i=0; i<3; i++)
for(j=0;j<4; j++)

b[j][i]=a[i][j];
for(i=0; i<4; i++)
for(j=0; j<3; j++)
{
printf("%d ", b[i][j]);
if(j==2)printf("\n");
}

return 0;
}

int main()
{
int i,j, list[3][4];
for(i=0; i<3; i++)
for(j=0; j<4; j++)

scanf("%d", &list[i][j]);
turn (list);


system("PAUSE");

}
pcboyxhy 2005-04-07
  • 打赏
  • 举报
回复
#include<stdio.h>

void zhoulv(int p[][3], int q[][4]);

main()
{
int a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},i,j,b[3][4];

for(i=0; i<4; i++, putchar('\n') )
for(j=0; j<3; j++)
printf("%3d ",a[i][j]);

zhoulv(a, b);

printf("the result is:\n");

for(i=0; i<3; i++, putchar('\n') )
for(j=0; j<4; j++)
printf("%3d ",b[i][j]);
system("pause");
}

void zhoulv(int p[][3], int q[][4])
{
int i,j;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
q[j][i]=p[i][j];
}
ycom__net 2005-04-07
  • 打赏
  • 举报
回复
#include <stdlib.h>
#include<stdio.h>

int turn (int a[3][4])
{
int i,j,b[4][3];
for(i=0; i<3; i++)
for(j=0;j<4; j++)

b[j][i]=a[i][j];

return 0;
}

int main()
{
int i,j, list[3][4];
for(i=0; i<3; i++)
for(j=0; j<4; j++)

scanf("%d", &list[i][j]);
turn (list);
for(i=0; i<3; i++)
for(j=0; j<4; j++)
{
printf("%d ", list[i][j]);
if(j==3)printf("\n");
}

system("PAUSE");

}
ycom__net 2005-04-07
  • 打赏
  • 举报
回复
**方阵才能求转置矩阵// 错了,不过不是方阵的话比较麻烦
转成一维的,或令建数组,赋值
ycom__net 2005-04-07
  • 打赏
  • 举报
回复
**方阵才能求转置矩阵

#include <stdlib.h>
#include<stdio.h>

int turn (int a[3][3])
{
int i,j,tmp;
for(i=0; i<3; i++)
for(j=i;j<3; j++)
{
tmp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
return 0;
}

int main()
{
int i,j, list[3][3];
for(i=0; i<3; i++)
for(j=0; j<3; j++)

scanf("%d", &list[i][j]);
turn (list);
for(i=0; i<3; i++)
for(j=0; j<3; j++)
{
printf("%d ", list[i][j]);
if(j==2)printf("\n");
}

system("PAUSE");

}
fashionzhou 2005-04-07
  • 打赏
  • 举报
回复
我写的是这个,有几个错误。哪位帮我改正一下,感激不禁。
#include<stdio.h>
*zhoulv(int *p,int *q);
main()
{
int a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},i,j,b[3][4];
for(i=0;i<4;i++)
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
if(i)
printf("\n");
printf("%d",*zhoulv(a[3],b[4]);
}

*zhoulv(int *p,int *q)
{
int i,j;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
*(*(q+j)+i)=(*(*(p+i)+j));
printf("the result is:");
for(i=0;i<4;i++)
for(j=0;j<3;j++)
printf("%3d",*(*(q+j)+i));
printf("\n");
return q;
}
llf_hust 2005-04-07
  • 打赏
  • 举报
回复
自己写呀,不难的
写了后我们在帮你看
pcboyxhy 2005-04-07
  • 打赏
  • 举报
回复
这个不行
只能动态分配
或者用1维的

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧