ciao a tutti
io sono alle prime armi con il c ed ho scritto un programma che calcola il prodotto di due matrici... ma non riesco a capire dove è l'errore.

uso vs studio express edition 2008

questo è il file stdafx.h

codice:
// stdafx.h : file di inclusione per file di inclusione di sistema standard
// o file di inclusione specifici del progetto utilizzati di frequente, ma
// modificati raramente
//

#pragma once

#include "targetver.h"

#include <stdio.h>
#include <tchar.h>
#include <stdlib.h>



// TODO: fare riferimento qui alle intestazioni aggiuntive richieste dal programma
questo è il sorgente

codice:
// Progetto - 3.cpp : definisce il punto di ingresso dell'applicazione console.
//

#include "stdafx.h"
int j, a[4][1],b[1][4],p[4][4]; // Definisco le matrici a e b 1xn e nx1
char e;

int _tmain(int argc, _TCHAR* argv[])
{
	printf("Calcolare c[n][n]=a[n][1]*b[1][n].\n\n"); // Titolo\

	for (j = 0; j<8; j++) // Inizializzo il loop della matrice
    {
	    printf("Specificare l'elemento a[%d][1]:", j); /* %d Scrive il valore della 
                                                        * variabile j nel formato 
                                                        * decimale; a[j][1] e` l'elemento della 
														* matrice 
											            * nx1 */
		fflush(stdin);
        scanf("%d", &a[j][1]); /* %f legge il formato float, & serve per andare a scrivere nella
		                        * variabile aj */
		printf("\n"); // \n serve per andare a capo
		
		printf("Specificare l'elemento b[1][%d]:", j);
		fflush(stdin);
        scanf("%d", &b[1][j]); 
		printf("\n");
		fflush(stdin);
		p[j][j]=a[j][1]*b[1][j]; // prodotto
	}
	printf("La matrice e': \n");
	for(j=0; j<8; j++)
		printf("\n %d", p[j][j]); // Stampo la matrice	
	printf("\n");
	fflush(stdin);
	printf("\nPremi INVIO per uscire...\n");

	scanf("%c",&e);
	if (e=='\0')
	{
		getchar();
		return 0;
	}
}