关于C语言问题,大家看下这个哪写错了?

来源:百度知道 编辑:UC知道 时间:2024/06/23 03:15:33
写一个函数,将一个4X3的整形矩阵转置。

#include <stdio.h>
void main()
{
int i,j;
int a[4][3],b[3][4];
printf("input matrix\n");
for(i=0;i <4;i++)
{
for(j=0;j <3;j++)
scanf("%d",&a[i][j]);
printf("\n");
}
for(i=0;i <4;i++)
for(j=0;j <3;j++)
b[i][j]=a[j][i];

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

输入:
1 2 3
4 5 6
7 8 9
10 11 12
正确的应该是
1 4 7 10
2 5 8 11
3 6 9 12
我的输出的结果怎么是
1 4 7 7083
2 5 8 2083
3 6 9 28893

大家帮我看下哪写错了?
我这个是在TC 2.0 下运行的..
哪错了,怎么改?????????

#include <stdio.h>
void main()
{
int i,j;
int a[4][3],b[3][4];
printf("input matrix\n");
for(i=0;i <4;i++)
{
for(j=0;j <3;j++)
scanf("%d",&a[i][j]);
printf("\n");
}
for(i=0;i <4;i++) //这里的4改为3
for(j=0;j <3;j++) //这里的3改为4
b[i][j]=a[j][i];

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

int i,j;
int a[4][3],b[3][4];
printf("input matrix\n");
for(i=0;i <4;i++)
{
for(j=0;j <3;j++)
scanf("%d",&a[i][j]);
printf("\n");
}
for(i=0;i <4;i++)
for(j=0;j <3;j++)
b[j][i]=a[i][j]; //你是这里写反了~

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