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');
}