Buenas estoy haciendo un ejercicio de la Facultad
y tengo una curiosidad
Al compilar me da un resultado muy raro, pues nose por que se genera
Al mostrar los elementos de la pila, me da el siguiente resultado.
0.00 4,50 4,30 4.90 5.90
Pues el 0.00 nose por que esta hay y nose como quitarlo
Si me pueden ayudar porfavor a resolver este curioso problema, les agradeceria muchisimo

Código (c) [Seleccionar]
#include<stdio.h>
#include<stdbool.h>
#define max 10
typedef float tPila[max];
tPila pila;
int i, tope, acum = 0;
int menu(int eleccion);
bool CrearPilaVacia();
bool PilaVacia();
bool PilaLlena();
void Apilar(int);
void Desapilar();
int cima();
void VisualizarElementos();
void sumaPila();
int main()
{
int eleccion;
menu(eleccion);
}
int menu(int eleccion)
{
int pElementos;
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("-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);
break;
case 5:
Desapilar();
break;
case 6:
VisualizarElementos();
break;
case 7:
sumaPila();
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;
}
}
void Apilar(int pElementos)
{
if(PilaLlena() != true)
{
tope = tope + 1;
pila[tope] = pElementos;
printf("Ingrese un elemento! \n");
scanf("%f",&pila[tope]);
printf("Elemento insertado! %.2f\n",pila[tope]);
}
else
{
printf("Pila Llena!\n");
}
}
void Desapilar()
{
if(PilaVacia() == true)
{
printf("Pila Vacia!!\n");
}
else
{
pila[tope] = 0;
tope = tope - 1;
printf("Elemento eleminado!!\n");
}
}
int cima()
{
return pila[tope];
}
void VisualizarElementos()
{
int i;
printf("Elemento en pila: \n");
for(i=0; i<=tope; i++)
{
printf("\t%.2f",pila[i]);
}
printf("\n\n");
}
void sumaPila()
{
int i;
float suma=0;
printf("Suma de elementos en la pila: \n");
// Suma los elementos de una pila.
for(i=0; i<=tope; i++)
{
suma = suma + pila[i];
acum = suma + 0;
}
printf("\t%.2f",acum);
printf("\n\n");
}
Al compilar me da un resultado muy raro, pues nose por que se genera
Al mostrar los elementos de la pila, me da el siguiente resultado.
0.00 4,50 4,30 4.90 5.90
Pues el 0.00 nose por que esta hay y nose como quitarlo
Si me pueden ayudar porfavor a resolver este curioso problema, les agradeceria muchisimo