c语言 这个代码为什么错了? 由键盘输入一个3*4(3行四列)的矩阵,要求输出它的转置矩列。

#include "stdio.h"

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

return 0;
}

从键盘输入一个3*4(3行四列)的矩阵,输出它的转置矩阵。原来的代码中的输出语句写错了。
错误有2:
一是输出的是元素的地址,而不是元素的值;
二是输出的各元素之间没有留出空格,会导致各数字相连,输出失败。
程序代码已经修改完成如下:
#include"stdio.h"
int main()
{ int i,j;
int a[3][4],b[4][3];
for(i=0; i<3; i++)
{ for(j=0; j<4; j++)
{ scanf("%d",&a[i][j]);
b[j][i]=a[i][j];
}
}
for(i=0; i<4; i++)
{ for(j=0; j<3; j++)
printf("%3d",b[i][j]);
printf("\n");
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答