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

struct lista {
    char nome[40];
    int idade;
    struct lista * prox;
};

int insere(char * nome, int idade, struct lista ** primeiro) {
    struct lista * no = malloc(sizeof(struct lista)), *atual = *primeiro, *ant = NULL;

    if (no == NULL)
        return 0;
    strcpy(no->nome, nome);
    no->idade = idade;
    no->prox = NULL;

    while (atual != NULL) {
        ant = atual;
        atual = atual->prox;
    }

    if (ant != NULL)
        ant->prox = no;
    else
        *primeiro = no;
    return 1;
}

int main(void) {

    int i;
    struct lista pessoas[] = { {"Jose", 18}, {"Rita", 20}, {"Paula", 19}, {"Ezequiel", 15}, {"Alexandre", 25}}, * minhalista = NULL, * primeiro;

    for (i = 0; i < sizeof(pessoas) / sizeof(pessoas[0]); i++) {
        if (insere(pessoas[i].nome, pessoas[i].idade, &minhalista) == 0)
            printf("Erro ar inserir %s\n", pessoas[i].nome);
    }

    primeiro = minhalista;

    while (primeiro != NULL) {
        printf("%s tem %d anos\n", primeiro->nome, primeiro->idade);
        primeiro = primeiro->prox;
    }
    return 0;
}
