ora il programma non da errori...ma neanche fa nulla (una cosa la stampa, il prodotto è 0)

mentre io mi ribbutto sul Deitel & Deitel chi gli da una guardata?
Codice:
#include<math.h>
#include<stdlib.h>
#include<stdio.h>
int rand( );
int matB( );
int somma(int **matriceB );
int prod(int **matrice);
main()
{
int matriceA[100][100];
int sum,prodotto,i,j,x,y;
int *matrice;
sum=i=j=x=y=0;
matrice=&matriceA[0][0];
printf("il prodotto è%d\n",prodotto);
system("PAUSE");
return 0;
}
/*FUNZIONE RIEMPIE MATRICE RAND*/
int rand()
{
int matriceA[100][100];
int i,j;
for(i=0;i<100;i++)
for(j=0;j<100;j++)
matriceA[i][j]=1+(rand()%10);
}
/*FUNZIONE CHE CREA MATRICE B*/
int matB()
{
int i,j,x,y;
int matriceB[100][100];
int matriceA[100][100];
for(i=0;i<100;i++)
for(j=0;j<100;j++)
if(matriceA[i][j]%2==0){
matriceB[x][y]=matriceA[i][j];}
else matriceB[x][y]=matriceA[i][j]*2;
printf("matriceB è%d->\n",matriceB[x][y]);
return 0;
}
/*FUNZIONE SOMMA*/
int somma(int **matriceB )
{
int x,y;
int sum;
for(x=0;x<100;x++){
for(y=0;y<100;y++)
sum+=matriceB[x][y];}
printf("la somma della matrice b è\n",sum);
return sum;
}
int prod(int **matrice)
{
int x, prodotto=1;
for(x=0; x<100; x++)
prodotto*=matrice[x][x];
return prodotto;
}