Oi pessoa, meu professor de estrutura de dados pediu para que fizesse um algoritmo para cadastrar alunos, suas notas e outras coisas relacionadas utilizando um struct. Os alunos são ordenados com a função qsort() e depois é utilizado a função bsearch() para procurar um desses alunos que foram cadastrados, o nome pesquisado é retornado normalmente o problema é que não consigo mostrar a nota do aluno, segue o código:
`struct aluno {
char nome[81];
char mat[8];
char turma;
char email[41];
float nota;
};
typedef struct aluno Aluno;
static int compara(const void *p1, const void *p2);
int main(){
Aluno *alunos[3];
int i;
for(i=0;i<3;i++){
alunos[i] = (Aluno*)malloc(sizeof(Aluno));
printf("Digite o nome do aluno: ");
scanf("%s", alunos[i]->nome);
printf("Digite a nota do aluno: ");
scanf("%f", &alunos[i]->nota);
}
char nomeSearch[20];
printf("\n\nDigite o nome do aluno a ser pesquisado: ");
scanf("%s", &nomeSearch);
qsort(alunos, 3, sizeof(Aluno*), compara);
Aluno *res = (Aluno*)bsearch(&nomeSearch, alunos, 3, sizeof(Aluno*), compara);
if(res!=NULL){
printf("Nome %s encontrado.\nNota: %0.2f", *(Aluno*)res->nome, res->nota);
}else{
printf("O retorno e NULL");
}
free(alunos);
}
static int compara(const void *p1, const void *p2){
char s = (char)p1;
Aluno a2 = (Aluno)p2;
return strcmp(s, (*a2)->nome);
}`