Eai galera estou com uma duvida na seguinte questão.Preciso salvar os dados de uma disciplina dentro de certas posiçoes da matriz no caso é a funcao void consulta,  mas na hora de printar a matriz não esta funcionando. Abaixo tem uma imagem de como deve ficar. Coloquei só as função.
 
	 
 
int cont;
void add_Aluno(struct registro al[3], struct disciplinas add_Dis[5], struct grade g_Materias[4][5]) {
  int dis, x, y, guarda[5], cont = 0, num;
  char resp;
  int volta = 1;
  printf("\n\n");
  printf("--------------------------------------\n");
  printf("---Voce selecionou adicionar aluno.---\n");
  printf("--------------------------------------\n");
  printf("    Lista de Disciplinas\n");
  printf("    Codigo    Nome\n\n");
  for (x = 0; x < 5; x++) {
    printf("    %d     %s \n", add_Dis[x].codigo, add_Dis[x].nome);
  }
  printf("\n");
  printf("    Horas    Horario\n\n");
  for (x = 0; x < 5; x++) {
    printf("    %d     %s\n", add_Dis[x].c_Horaria, add_Dis[x].h_Semanal);
  }
  printf("\n");
  do {
    x = 0;
    printf("Digite seu nome:");
    fflush(stdin); //Funcão de Cadastro do aluno
    gets(al[cont].nome);
    printf("Digite seu Sobrenome:");
    gets(al[cont].sobrenome);
    strcat(al[cont].nome, al[cont].sobrenome);
    printf("Digite sua Matricula:");
    scanf("%d", & al[cont].matricula);
    printf("Digite seu e-mail:");
    fflush(stdin);
    gets(al[cont].email);
    printf("Digite em quantas materias deseja se matricular:");
    scanf("%d", & num);
    cont++;
    do {
      printf("Digite o codigo das diciplinas que voce deseja se matricular\n");
      for (y = 0; y < num; y++) {
        scanf("%d", & al[y].l_Disciplinas);
      }
      for (x = 0; x < num; x++) {
        if (al[x].l_Disciplinas == 122)
        //Adiciona as disciplinas para as posiçoes
        //da matriz
        {
          strcpy(g_Materias[0][0].grade_C, "Algo");
          strcpy(g_Materias[1][1].grade_C, "Algo");
        } else if (al[x].l_Disciplinas == 127) {
          strcpy(g_Materias[2][1].grade_C, "Estr");
          strcpy(g_Materias[4][2].grade_C, "Estr");
        } else if (al[x].l_Disciplinas == 132) {
          strcpy(g_Materias[2][1].grade_C, "Sist");
          strcpy(g_Materias[1][3].grade_C, "Sist");
        } else if (al[x].l_Disciplinas == 143) {
          strcpy(g_Materias[1][4].grade_C, "Padr");
        } else if (al[x].l_Disciplinas == 143) {
          strcpy(g_Materias[1][2].grade_C, "Banc");
          strcpy(g_Materias[1][4].grade_C, "Banc");
        } else if (al[x].l_Disciplinas == 127 && al[x].l_Disciplinas == 132) {
          volta = 0;
          printf("Voce Não pode se inscrever em duas disciplas de mesmo horario\n");
        } else if (al[x].l_Disciplinas == 135 && al[x].l_Disciplinas == 143) {
          volta = 0;
          printf("Voce Não pode se inscrever em duas disciplas de mesmo horario\n");
        }
      }
    } while (volta == 0);
    printf("Deseja Cadastrar outro aluno? s/n:");
    fflush(stdin);
    scanf("%c", & resp);
  } while (x = !'n');
}
void consulta(struct registro al_C[3], struct grade grade_M[4][5]) {
  int x, escolhe, a, b;
  char nome[20];
  char salva[3];
  int cont_L = 0;
  int teste[3];
  char resp;
  int matricula_N;
  printf("\n\n");
  printf("--------------------------------------\n");
  printf("---Voce selecionou Consultar aluno.---\n");
  printf("--------------------------------------\n");
  printf("1.Pesquisa por Nome\n");
  printf("2.Pesquisa por Matricula\n");
  scanf("%d", & escolhe);
  do {
    if (escolhe == 1) {
      printf("Digite o nome do aluno:");
      fflush(stdin);
      gets(nome);
      for (x = 0; x < 4; x++) {
        if (al_C[x - 2].nome == ' ') {
          //copia as 3 primeiras letras para dentro do vetor salva
          strcpy(salva, al_C[x - 2].nome);
          strcpy(teste, salva);
        }
        if (strcmp(al_C[x].nome, nome) == 0) {
          //compara os nomes ou compara a 3 letras dos dois nome se for igual ele printa a grade
          for (a = 0; a < 4; a++) {
            for (b = 0; b < 5; b++) {
              printf("%s", grade_M[a][b].grade_C);
            }
          }
        }
      }
    } else if (escolhe == 2) {
      printf("Digite a Matricula do aluno:");
      fflush(stdin);
      scanf("%d", & matricula_N);
      for (x = 0; x < 4; x++) {
        if (al_C[x].matricula == matricula_N);
        //compara as duas matricular se são iguais se for ele printa a grade do aluno
        {
          for (a = 0; a < 4; a++) {
            for (b = 0; b < 5; b++) {
              printf("%s", grade_M[a][b].grade_C);
            }
            printf("\n");
          }
        }
      }
    }
    printf("Deseja consultar outro aluno? S/N");
    fflush(stdin);
    scanf("%c", & resp);
  } while (resp != 's');
}