ayuda por favor no se por que la matriz me imprime lo que debe de ser pero tambien me imprime basura
soy nuevo en esto de programacion por favor ayuda 


Código (c) [Seleccionar]
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void LeerInt(int*,int*,int*,int*,char*);
void M1(int*,int*,int*,int,char*);
int main(){
int x[50];
int x2[50];
int x1[50];
int d[50];
int n;
LeerInt(x,x1,x2,&n,"NUMERO");
M1(x,x1,x2,n,"NUMERO");
return 0;
}
void LeerInt(int *x,int*x1,int*x2,int *m,char*nom){
int i;
int matriz[100][100];
printf("\n\t elementos del vector son: ");
scanf("%i",m);
for(i=0;i<*m;i++){
printf("\n\t INGRESE Los elementos del primer vector %s[%i]:", nom,i+1);
scanf("%d",&x[i]);
}
for(i=0;i<*m;i++){
printf("\n\t INGRESE Los elementos del segundo vector %s[%i]:", nom,i+1);
scanf("%d", &x1[i]);
}
for(i=0;i<*m;i++){
printf("\n\t INGRESE Los elementos del tercer vector %s[%i]:", nom,i+1);
scanf("%d", &x2[i]);
}
}
void M1(int*x,int*x1,int*x2,int m,char*nom){
int t,j,k=0,z=0,i=0,l;
int matriz[100][100];
for(t=0;t<m;t++)
for(j=0;j<3;j++)
{
matriz[t][j]=x[k];k++;
}
for(t=0;t<m;t++)
for(j=0;j<3;j++)
printf("[%d]\n",matriz[t][j]);
for(t=0;t<m;t++)
for(j=0;j<3;j++)
{
matriz[t][j]=x1[z];z++;
}
for(t=0;t<m;t++)
for(j=0;j<3;j++)
printf("[%d]\n",matriz[t][j]);
for(t=0;t<m;t++)
for(j=0;j<3;j++)
{
matriz[t][j]=x2[i];i++;
}
for(t=0;t<m;t++)
for(j=0;j<3;j++)
printf("[%d]\n",matriz[t][j]);
return;}