aqui os dejo el codigo que tengo hasta ahora.
Código:
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #define MAX 100 #define TAM 20 struct PILA{ int cont; int array[MAX]; }; void iniciar_pila(struct PILA *); void apilar(struct PILA *,int numero); int pila_llena(struct PILA *); int pila_vacia(struct PILA *); void mostrar(struct PILA *); void main () { int i,numero[50]; char texto[50]; struct PILA digito; iniciar_pila(&digito); printf("Introduce el texto: "); gets(texto); for(i=0;i<strlen(texto);i++) { numero[i]=texto[i]; if(48<texto[i] && 57>texto[i]) { apilar(&digito,numero[i]); } } mostrar(&digito); getch(); system("pause"); } void iniciar_pila(struct PILA *nuevo) { int i; nuevo->cont=0; for(i=0;i<MAX;i++) { nuevo->array[i]=0; } } void apilar(struct PILA *digito, int numero) { if(!pila_llena(digito)) { digito->array[digito->cont]=numero; digito->cont++; } else printf("La pila esta llena"); } int pila_vacia(struct PILA *digito) { if(digito->cont==0) //Si la pila esta vacia retorna un 1 return 1; else return 0; } int pila_llena(struct PILA *digito) { if(digito->cont==MAX) //Si la pila esta llena retorna un 1 return 1; else return 0; } void mostrar(struct PILA *digito) { int j=1; printf("Mostrando numeros insertados en la pila\n"); printf("_________________________________________\n"); for (int i=digito->cont-1; i>=0; i--) { printf("digito %d: ",j); printf("%d\n\n",digito->array[i]); j++; } }