Reconstrui tu programa, me quedo perfecto, presta atención al uso que le e dado al for. 
    
Código C++:
Ver original#include <stdio.h>
#define ALUM 10
#define CURS  12
 
/* Variables Globales */
float alumnos[CURS][ALUM];
int contador, contador2;
 
/* Funciones  */
void promedio(float [CURS][ALUM]);
 
int main(int argc, char **argv)
{
    for ( contador = 0; contador < CURS; contador++)
    {
    printf("\nIngrese las notas de 10 alumnos del curso %d \n", contador
);     for ( contador2 = 0; contador2 < ALUM; contador2++)
       {
        scanf("%f", &alumnos
[contador
][contador2
]);         }
    }
    promedio(alumnos);
    return 0;
}
 
void promedio(float alumnos[CURS][ALUM])
{
   float temp=0;
   for(contador=0; contador < CURS ; contador++)
  {
      temp=0;
      for(contador2=0; contador2 < ALUM; contador2++)
      {
        temp= temp+ alumnos[contador][contador2];
       }
       temp = temp / ALUM;
       printf("\nEl promedio para el curso %d es %f", contador
, temp
);    }
}