各位,帮我看一看啊,哪里错了!为什么最后输出的是乱码啊
#include<iostream.h>
#include<stdio.h>
#define N 2
void main()
{int a[N][N],b[N][N];
//input 1
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
cin>>a[i][j];
//input 2
int m,n;
for(m=0;m<N;m++)
for(n=0;n<N;n++)
cin>>b[m][n];
//display 1
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%d ",a[i][j]);
if(j%(N-1)==0)
cout<<endl;}
//display 2
for(m=0;m<N;m++)
{ for(n=0;n<N;n++)
printf("%d ",b[m][n]);
if(j%(N-1)==0 )
cout<<endl;}
//矩阵相加
int c[N][N];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
c[i][j]=a[i][j]+b[i][j];
//display c
for(m=0;m<N;m++)
{ for(n=0;n<N;n++)
printf("%d ",c[m][n]);
if(j%(N-1)==0 )
//求两个矩阵的积
int d[N][N];int x,y,z;
d[0][0]=0;
for(x=0;x<N;x++)
{
for(y=0;y<N;y++)
for(z=0;z<N;z++)
d[x][y]+=a[x][z]*b[z][y];
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
cout<<e[i][j]<<" ";
if(j%(N-1)==0 )
cout<<endl;}
}