c – Não Consigo identificar o Erro do meu código

Alguem saberia o motivo de este código estar dando o erro (core dumped)?

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

int
aprovados (int c, int aprov, int l, float media(), int n, float notas()(3))
{
  aprov = 0;
  for (l = 0; l < 3; l++)
    for (c = 0; c < 3; c++)
      {

    if (media(l) >= 7)
      {
        aprov++;
      }
      }
    return aprov;
}

int
reprovados (int c, int reprov, int l, float media(), int n, float notas()(3))
{
  reprov = 0;
  for (l = 0; l < 3; l++)
    for (c = 0; c < 3; c++)
      {

    if (media(l) < 7)
      {
        reprov++;
      }
      }
    return reprov;
}

main ()
{

  int n, l, c, aprov, reprov, aprovacoes, reprovacoes;
  float notas(n)(3);
  float media(n);
  float soma;
  
  soma = 0;
  aprov = 0;
  reprov = 0;
  aprovacoes = 0;
  reprovacoes = 0;
  
  printf    ("quantos alunos sao?n");
  scanf("%d",&n);


  for(l=0;l<n;l++){
      for(c=0;c<3;c++){
          printf("(%d)(%d)",l,c);
          scanf("%f",&notas(l)(c));
      }
  }
  for (l = 0; l < n; l++)
    for (c = 0; c < 3; c++)
      {
    soma = soma + notas(l)(0) + notas(l)(1) + notas(l)(2);
    media(l) = soma / 3;
    printf ("%fn", media(l));
    soma = 0;

    {

    }


      }
  aprovacoes = aprovados (c, aprov, l, media, n, notas)/n;
  reprovacoes = reprovados (c, reprov, l, media, n, notas)/n;
  printf ("Temos %d Aprovadosn E %d Reprovados", aprovacoes, reprovacoes);





}