Im busy trying to transpose my array but the code doesnt seem to be working...Can someone help me out please?

Code:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#define N 3
int find_inner_product (int *a,int *b,int size)
{int inner_product=0,i=0;
for (i=0;i<size;i++)
{inner_product=inner_product+ *(a+i)*(*(b+i));}
return inner_product;} /*function to do the inner product*/
int matrix_transpose(int a[][N],int size)
{int i=0,j=0,temp[N][N],transpose_matrix[N][N];
for ( i = 0; i<N; i++ )
{for( j = 0; j<N; j++ )
{ a[i][j]=temp[i][j];
temp[i][j]=transpose_matrix[j][i];
}
}
}
int main(void)
{
int matrix1[N][N],matrix2[N][N],i=0,j=0,inner_product=0,transpose_matrix[N][N];
printf("Please enter the values of the 3x3 Matrix: ");
for ( i = 0; i < N; i++ )
{for( j = 0; j< N; j++ )
{scanf("%d", &matrix1[i][j]);}
} /*this for loop goes through every number and stores it in the first matrix*/
printf("\nPlease enter the values of the second 3x3 Matrix: ");
for ( i = 0; i < N; i++ )
{for( j = 0; j< N; j++ )
{scanf("%d", &matrix2[i][j]);}
} /*this for loop goes through every number and stores it in the second matrix*/
inner_product=find_inner_product(matrix1,matrix2,N); /*calling the function to do the first row dot product*/
printf("\nThe inner product between the top two rows is %d",inner_product);
for ( i = 0; i < N; i++ )
{for( j = 0; j< N; j++ )
transpose_matrix[i][j]=matrix_transpose( matrix1[N][N],N);
}
for ( i = 0; i < N; i++ )
{for( j = 0; j< N; j++ )
printf("\n%d", transpose_matrix[i][j]);
}
}