Как исправить вывод в матрице транспонирования проблемы в C? - PullRequest
0 голосов
/ 30 марта 2019

Я пытался транспонировать матрицу 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

Ответы [ 2 ]

0 голосов
/ 30 марта 2019

Проблема в том, что цикл 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]; 
        } 
    } 
}
0 голосов
/ 30 марта 2019

При печати матрицыZ вы дали 'for (I = 1; I <6; I ++)', что означает, что цикл будет повторяться 5 раз. </p>

и в matrans это i <= 4, что означает, что он будет повторяться 4 раза. То же самое для цикла for в одном месте, которое вы дали. col <= 5, а на другом col <5 </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...