c语言任意输入一个2x3矩阵,求转置,本人新学,求教

从#include开始 一直到结束 最好有截图
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
int main()
{
int a[2][3],x,y;
printf("!!!!!!:\n");
for(x=0;x<=1;x++)
{
for(y=0;y<=2;y++)
scanf("%d",&a[x][y]);
}
printf("^^^^^^^:\n");
for(x=0;x<=1;x++)
{
for(y=0;y<=2;y++)
printf("%5d",a[x][y]);
printf("\n");
}
int b[3][2],i,j;
for (i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
b[j][i]=a[x][y];
}
printf("\n");
}
printf("********:\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\n");
}
system("pause");
}
求转置 哪里错里
为什么一直只能输出
2 2
2 2
2 2

b[j][i]=a[x][y];
这一行里面a[x][y]应该改为a[i][j];求转置就是行列互换,所以这里的变量你需要把两个下标变量互换输入就可以了,x,y是没有不行的。追问

那是不是不用 赋值 x,y 全部都用i,j可以吗

追答

也可以。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-19
for (i=0;i<=1;i++)
{ for(j=0;j<=2;j++)
{
b[j][i]=a[x][y];
}
printf("\n");
}
错在 b[j][i]=a[x][y];
你的X ,Y没有随着J 和I的变化,所以一直是把同一个数赋值给了整个数组。此处应该写
b[j][i]=a[i][j];
相似回答