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

struct aluno
{
    int matricula;
    char nome[30];
    float n1, n2, n3;
};
typedef struct elemento* Lista;

struct elemento
{
    struct aluno dadosAlunos;
    struct elemento *prox;
};
typedef struct elemento Elem;



void imprime_lista(Lista li){
    while (li != NULL)
    {
        printf("Nome: %s ", li->dadosAlunos.nome /*<--diferente aqui*/);
        printf("\nMatricula: %d ", li->dadosAlunos.matricula);
        printf("\nN1: %f ", li->dadosAlunos.n1);
        printf("\nN2: %f ", li->dadosAlunos.n2);
        printf("\nN3: %f ", li->dadosAlunos.n3);


        li = li -> prox;
    }
    printf("\n");
}

int inserir_no_inicio_da_lista (Lista* li, struct aluno al)
{
    if (li == NULL)
    {
        return 0;
    }

    Elem* no = (Elem*) malloc(sizeof(Elem));

    if (no == NULL)
    {
        return 0;
    }

    no -> dadosAlunos = al;
    no -> prox = (*li);

    *li = no;

    return 1;
}

int main()
{
    int varAux = 0;

    struct aluno estruturaAlunoAuxiliar;
    Lista listaDeAlunos;

    listaDeAlunos = NULL; 

    estruturaAlunoAuxiliar.matricula = 1;
    strcpy(estruturaAlunoAuxiliar.nome, "Thiago Ferreira");
    estruturaAlunoAuxiliar.n1 = 7;
    estruturaAlunoAuxiliar.n2 = 6;
    estruturaAlunoAuxiliar.n3 = 9;

    varAux = inserir_no_inicio_da_lista (&listaDeAlunos, estruturaAlunoAuxiliar);

    imprime_lista(listaDeAlunos); 

    return 0;
}
