Estrutura de dados - pilha
A média ((nota 1 + nota 2) / 2) deve ser calculada antes de se inserir o elemento na pilha. O programa deverá, ainda, exibir um menu para as opções de inserir novo aluno, de mostrar o topo da pilha, de mostrar todos e de remover um elemento.
#include /
#include
#define NUM_MAX_ITENS 5
typedef struct //cria a estrutura inicial da pilha com suas variaveis e aponta para a proxima estrutura
{
char nome[51]; int ra; float nota1; float nota2; float media;
} Ficha;
typedef struct // cria a estrutura da pilha, a quantidade de elementos que podem ser alocados e aponta para a proxima
{
Ficha item[NUM_MAX_ITENS]; int topo;
} Pilha;
int push(Pilha *pPilha, Ficha *pFicha); //interface de operações e estado da pilha int pop (Pilha *pPilha, Ficha *pFicha);
int push(Pilha *pPilha, Ficha *pFicha)
{
// verificar se a pilha esta cheia
if (pPilha->topo == NUM_MAX_ITENS) return 1;
// empilhar a nova ficha no topo da pilha
pPilha->item[pPilha->topo] = *pFicha;
// incrementar o topo da pilha
pPilha->topo++;
// retornar indicando empilhamento bem sucedido
return 0;
}
int pop(Pilha *pPilha, Ficha *pFicha)
{
// verificar se a pilha esta vazia
if (pPilha->topo == 0) return -1;
// decrementar o topo da pilha
pPilha ->topo--;
// recuperar o elemento que estava no topo
*pFicha = pPilha->item[pPilha->topo];
// retornar indicando desempilhamento bem sucedido
return 0;
}
int main()
{
Pilha minhaPilha; Ficha minhaFicha; int opcao,i,r; Ficha *pFicha;
// iniciar a pilha vazia
minhaPilha.topo=0;
do { // menu de opções system("cls"); printf("[1] Empilhar uma nova ficha\n"); printf("[2] Desempilhar uma ficha\n"); printf("[3]