qq_45735316
2019-12-01 17:13
采纳率: 85.7%
浏览 523

矩阵转置用指针作为函数参数,为什么输出结果这么奇怪?

#include
#include
#define N 3
#define M 3
/*238-4.编写一个函数(参数用指针)将一个3×3矩阵转置。*/
void matrixtranspose(int (*p)[M],int(*p1)[M])
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
((p1+j)+i)=*(*(p+i)+j);
}
}
}
void display(int (*p)[M])
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
printf("%2d",*(*(p+i)+j));
}
printf("\n");
}
}
int main()
{
int i,j,(*p)[M],a[N][M]={0},(*p1)[M];
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
scanf("%d ",&a[i][j]);
}
}
p=a;
display(p);
p1=a;
matrixtranspose(p,p1);
display(p1);
return 0;
}
图片说明


  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题