Acontece que você so leu uma vez, você teria que ler 12 vezes pra prencher os doze alocamentos da matriz, entendeu? normalmente se faz isso usando laço for, tipo assim: for(a=0;a<=11;a++) { printf("Digite o a+1 valor:"); scanf("%d", & mat[a]); } Ai ele aloca doze valores na matriz, entendeu mais ou menos? O a e o indice da matriz, ou seja, esta mostrando aonde o dado esta sendo alocado, entendeu?