The whole code looks valid to me except the fact that makeTranspose function actually does nothing. If your problem is to complete the makeTranspose function, this example might give you a hint:
int a[3][3] =
{
{1, 2, 3},
{1, 2, 3},
{1, 2, 3}
};
int temp[3][3];
// Reserve original value of array "a" to "temp"
for( int i = 0; i < 3; ++i )
{
for( int j = 0; j < 3; ++j )
{
temp[i][j] = a[i][j];
}
}
// Transposing "a" by moving values in "temp" to "a" in correct sequence.
for( int i = 0; i < 3; ++i )
{
for( int j = 0; j < 3; ++j )
{
a[i][j] = temp[j][i]; // notice that this time, we are giving i, j in different sequence
}
}