C语言改错题求教求教该程序哪里错了??

改错题1===从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之积
#include "stdio.h"
#define M 10
int a[M][M]={0};
fun(int **a,int m)_
{
int j,k;
for(j=0;j<m;j++)
for(k=0;k<m;k++)
a[j][k]=j*k;
}
main()
{
int i,j,n;
printf("Enter n:");
scanf("%d",&n);
fun(a,n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
====求教该程序哪里错了??(注意:不得对程序增行或删行,也不得更改程序的结构)

没看到你的数组赋值
int tmp = 1;
//主对角线横纵坐标一定相等
for(i=0;i<M;i++){
tmp*=a[i][i];
}