Sarà l'orario...ma io non vedo nessuna parte del programma dentro la quale costruisci questa matrice. Quando vuoi visualizzare gli elementi di matrice[][] da dove li prendi questi elementi se non li hai mai inseriti?
printf ("[%d][%d]\n", matrice[i][j]);
Questa riga o si trasforma in
printf ("[%d]\n", matrice[i][j]);
se però inserisci gli elementi nella matrice
oppure non so volevi fare il prodotto righe per colonne?
printf ("[%d]\n", a[i]*b[j]);
Dipende come vuoi risolvere l'esercizio e come intendi costruire la matrice.
Se ci metti il doppio %d cerchi due valori...