我尝试使用用户输入的值将4x5矩阵转置为5x4矩阵。 矩阵的最后一行似乎未正确转置。
我尝试过切换我的for循环的参数,但是我确定我做得对。
int MATRANS(int original[4][5], int transpose[5][4])
{
int ROW, COL;
for (ROW = 1; ROW <=4; ROW++)
{
for (COL = 1; COL <= 5; COL++)
{
transpose[COL][ROW]= original[ROW][COL];
}
}
}
//Printing Matrix Z//
printf("Transposed Matrix:\n");
for (row=1; row< 6; row++)
{
for (col=1; col < 5; col++)
{
printf("%d ", matrixZ[row][col]);
}
printf("\n");
}
The output when you enter all 1's is
1111
1111
1111
1111
1251
when I expect it to be
1111
1111
1111
1111
1111
答案 0 :(得分:0)
虽然您给出了打印matrixZ 'for(I = 1; I <6; I ++)',这意味着循环将迭代5次。
并且在matrans中它是i <= 4,这意味着它将迭代4次。 对于在给定位置的另一个for循环也是如此。 col <= 5,另一个col <5
答案 1 :(得分:0)
问题是您的for循环从1开始而不是0。
int MATRANS(int original[4][5], int transpose[5][4]) {
int ROW, COL;
for (ROW = 0; ROW <4; ROW++) {
for (COL = 0; COL < 5; COL++){
transpose[COL][ROW]= original[ROW][COL];
}
}
}