Hola te agradezco un montón todo lo que me dijiste, ayer intente poner en práctica todo, la verdad no me salio casi nada y es por que no tengo claro los fundamentos ni la práctica aun, pero mi profe me aprobó el trabajo, y todavia no me doy por vencido estoy intentando nuevas cosas como por ejemplo mostrar el último elemento de la pila o mostrar el elemento eliminado de la pila, estoy si viendo si puedo agregar elementos de distinto tipo de dato, fuaa un montón de cosas en fin mira mi codigo, para mi esta muy cambiado pero nose, en fin muchas gracias enserio.
Código (c) [Seleccionar]
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#define max 10
typedef float tPila[max];
tPila pila;
int tope;
int menu(int eleccion);
bool CrearPilaVacia();
bool PilaVacia();
bool PilaLlena();
bool Apilar(float pElementos);
bool Desapilar();
float cima();
float VisualizarElementos();
float sumaPila();
int main()
{
int eleccion = menu(eleccion);
}
int menu(int eleccion)
{
float pElementos, acum = 0;
while(eleccion != -1)
{
printf("\n--BIENVENIDO--\n");
printf("1.- CrearPilaVacia\n");
printf("2.- Pila vacia? \n");
printf("3.- Pila Llena? \n");
printf("4.- Apilar \n");
printf("5.- Desapilar \n");
printf("6.- Visualizar Elementos \n");
printf("7.- Suma Elementos \n");
printf("8.- Elemento en el tope \n");
printf("-1.- Salir\n\n");
printf(".- Elige una opcion..\n");
scanf("%d",&eleccion);
switch(eleccion)
{
case 1:
CrearPilaVacia();
printf("Has Creado una pila vacia? %s\n",CrearPilaVacia() ? "si" : "no");
break;
case 2:
PilaVacia();
printf("Pila vacia? %s\n",PilaVacia() ? "si" : "no");
break;
case 3:
PilaLlena();
printf("Pila Llena? %s\n",PilaLlena() ? "si" : "no");
break;
case 4:
Apilar(pElementos);
printf("Ingrese un elemento! \n");
scanf("%f",&pila[tope]);
printf("Elemento insertado! %.2f\n",pila[tope]);
break;
case 5:
Desapilar();
break;
case 6:
printf("Elementos en la pila\n");
VisualizarElementos();
break;
case 7:
sumaPila();
printf("\tLa suma de los elementos de la pila es: %.2f",sumaPila());
printf("\n\n");
break;
case 8:
printf("El elemento en el tope es: %.2f",cima());
break;
}
}
}
bool CrearPilaVacia()
{
tope = -1;
}
bool PilaVacia()
{
if(tope == -1)
{
return true; /* Tiene elementos.*/
}
else
{
return false; /* No tiene elementos.*/
}
}
bool PilaLlena()
{
if(tope == (max-1))
{
return true;
}
else
{
return false;
}
}
bool Apilar(float pElementos)
{
if(PilaLlena() != true)
{
tope = tope + 1;
pila[tope] = pElementos;
}
else
{
printf("Pila Llena!\n");
}
}
bool Desapilar()
{
if(PilaVacia() == true)
{
printf("Pila Vacia!!\n");
}
else
{
pila[tope] = 0;
tope = tope - 1;
printf("Elemento eleminado!!\n");
}
}
float cima()
{
return pila[tope];
}
float VisualizarElementos()
{
int i;
for(i=0; i<=tope; i++)
{
printf("\t %.2f",pila[i]);
}
}
float sumaPila()
{
float suma=0, acum = 0;
int i;
// Suma los elementos de una pila.
for(i=0; i<=tope; i++)
{
suma = suma + pila[i];
acum = suma + 0;
}
return acum;
}