#include <stdio.h>
#include <stdlib.h>
// Declaração do tipo estrutura aluno
typedef struct
{
    char nome[50];
    char apelido[50];
    int registo_academico;
    int codigo_curso;
} Aluno;

Aluno SetAluno (char codigoAluno[20], int numAluno){
//Cria o aluno
Aluno criaAluno;
    printf("Insira o Primeiro Nome do %s%d: ", codigoAluno, numAluno);
    scanf("%s",&criaAluno.nome);
    fflush(stdin);
    printf("Insira o Apelido do %s: ", codigoAluno);
    scanf("%s",&criaAluno.apelido);
    fflush(stdin);
    printf("Insira o registo academico do %s: ", codigoAluno);
    scanf("%d", &criaAluno.registo_academico);
    printf("Insira o codigo do curso do %s: ", codigoAluno);
    scanf("%d", &criaAluno.codigo_curso);
return criaAluno;
}

void mostraAluno (Aluno Al)
{
 // Mostra dados do Aluno
    printf("Nome Completo: %s %s \n", Al.nome, Al.apelido);
    printf("Reg Academico: %d \n", Al.registo_academico);
    printf("Curso: %d \n", Al.codigo_curso);
}

int main() {
 // Declarar várias variáveis com estruturas TipoAluno
Aluno Aluno[5], AlunoMaisAntigo, AlunoMaisRecente;
 AlunoMaisAntigo.registo_academico = 10000;
 AlunoMaisRecente.registo_academico = -1;

 // Criar os 5 alunos
 for(int i=0; i<5; i++){
Aluno[i] = SetAluno("Aluno",i+1);
 }
 // Selecionar o aluno mais antigo
 for(int i=0; i<5; i++){
    if(Aluno[i].registo_academico < AlunoMaisAntigo.registo_academico)
 AlunoMaisAntigo = Aluno[i];
 }

 // Selecionar o aluno mais recente
 for(int i=0; i<5; i++){
    if(Aluno[i].registo_academico > AlunoMaisRecente.registo_academico)
 AlunoMaisRecente = Aluno[i];
 }

 //Mostrar os dados dos alunos mais antigo e mais recente
    printf("\n\nO Aluno mais antigo: \n");
    mostraAluno(AlunoMaisAntigo);
    printf("\n\nO Aluno mais recente: \n");
    mostraAluno(AlunoMaisRecente);
 return 0;
}