Hola que tal, hay unos pequeños errores:
1) La variable "salir" es de tipo char, entonces para leerla se usa "%c" que es para caracteres en vez de "%s" que es para cadenas de caracteres.
2) Hay una mala sintaxis en unas llaves {} del case 3, acontinuación comento lo que se debe organizar:
Código:
if(stack.cima!=0){
printf("los datos almacenados en la pila son :\n");
for (j=0;j<stack.cima;j++){
printf("los datos en la pila son",stack.mpila[j]);
} // Esta llave faltaba ponerla
} // Esta llave faltaba ponerla
else{
printf("no hay datos guardados en la pila");
printf("deseas salir (Si o No)");
scanf("%c",&salir);
}
//} Esta llave sobra
//} Esta llave sobra
3) Falta imprimir los números devueltos por "pop"
Código:
dato = stack.pop();
printf("%d",dato);
4) Dentro del for del case3 faltó imprimir los números de la pila
Código:
for (j=0;j<stack.cima;j++){
printf("%d ",stack.mpila[j]);
}
Eso sería. Mucha suerte.
Saludos.
PD: Cuando postees usa [code] y [ /code] para encerrar códigos, de esta forma su lectura se facilita mucho más.