Dev - C++ - lo que ocupo hacer es que no sean numeros los que se ingresen sino palabras

   
Vista:

lo que ocupo hacer es que no sean numeros los que se ingresen sino palabras

Publicado por mario (3 intervenciones) el 09/06/2015 22:18:37
necesito ayuda con este programa al darle 1 dice que ingrese un numero lo almacena al darle 1 otra ves pide otro numero y asi sucesivamente! pero lo que ocupo hacer es que no sean numeros los que se ingresen sino palabras! a ver si alguien sabe


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
 
using namespace std;
 
//ESTRUCRURA AUTO REFERENCIADA
struct nodoPila{
	//APUNTADOR A nodPila
	struct nodoPila *ptrSiguiente;
	 //DEFINE UN DATO TIPO ENTERO
	int dato;
};
//SINONIMO DE LA ESTRUCTURA nodoPila 
typedef struct nodoPila NodoPila;
//SINONIMO PARA NodoPila
typedef NodoPila *ptrNodoPila;
//PROTOTIPOS
void empujar(ptrNodoPila *ptrCima, int info);
int sacar(ptrNodoPila *ptrCima);
int estaVacia(ptrNodoPila ptrCima);
void imprimePila(ptrNodoPila ptrActual);
void instrucciones(void);
 
//LA FUNCION MAIN COMIENZA LA EJECUCION DEL PROGRAMA
int main(){
	//APUNTA AL TOPE DE LA PILA
	ptrNodoPila ptrPila=NULL;
	//ELECCION DE MENU DEL USUARIO
	int eleccion;
	//ENTRADA INT DEL USUARIO
	char valor;
 
	instrucciones();//DESPLIEGA EL MENU
	cout<<"?";
	scanf("%d", &eleccion);
 
	//MIENTRAS EL USUARIO NO INTRODUZCA 3
	while(eleccion !=3){
		switch(eleccion){
			//EMPUJA EL VALOR DENTRO DE LA PILA
			case 1:
				cout<<("Introduzca un entero: ");
				scanf("%d",&valor);
				empujar(&ptrPila, valor);
				imprimePila(ptrPila);
				break;
 
			//SACA EL VALRO DE LA PILA
			case 2:
			//SI LA PILA NO ESTA VACIA
			if (!estaVacia(ptrPila)){
				cout<<("El valor sacado es &d.\n", sacar(&ptrPila));
				//FIN DEL IF
				imprimePila(ptrPila);
				break;
			}
 
			//ELECCION NO VALIDA
			default:
				cout<<("Eleccion no valida.\n\n");
				instrucciones();
				break;
		}//FIN DEL SWITCH
		cout<<("?");
		scanf("%d", &eleccion);
	}//FIN DEL WHILE
 
}
 
/*DESPLIEGA LAS INTRUCCIONES DEL
 PROGRAMA PARA EL USUARIO*/
void instrucciones(void)
{
	cout<<"* * * * * * * * Introduzca su eleccion: * * * * * * * *\n";
	cout<<"1 Ingrese su Segundo Apellido\n";
	cout<<"2 para sacar un valor de la pila\n";
	cout<<"3 para terminar el programa\n";
 
}//FIN DE LA FUNCION INSTRUCCIONES
 
//INSERTA UN NODO EN LA CIMA DE LA PILA
void empujar(ptrNodoPila *ptrCima, int info)
{
	//APUNTADOR AL NUEVO NODO
	ptrNodoPila ptrNuevo;
	//ptrNuevo=malloc(sizeof(*NodoPila));
	ptrNuevo=(struct nodoPila *)malloc(sizeof(struct nodoPila));
 
	//INSERTA EL NODO EN LA CIMA DE L APILA
	if(ptrNuevo!=NULL){
		ptrNuevo->dato=info;
		ptrNuevo->ptrSiguiente=*ptrCima;
		*ptrCima=ptrNuevo;
	}//FIN DEL IF
	else{//NO QUEDA ESPACIO DISPONIBLE
		cout<<("%d no se inserto."
		" Memoria insuficiente.\n", info);
	}//FIN DEL ELSE
}//FIN DE LA INSTRUCCION EMPUJAR
 
//ELIMINA UN NODO DE LA CIMA DE LA PILA
int sacar(ptrNodoPila *ptrCima)
{
	//APUNTADOR A UN NODO TEMPORAL
	ptrNodoPila ptrTemp;
	//VALOR DEL NODO
	int valorElim;
 
	//SE UTILIZA PARA LIBERAR MEMORIA INNCESARIA
	ptrTemp=*ptrCima;
	//PARA GUARDAR EL VALOR DEL NODO EN LA CIMA
	valorElim=(*ptrCima)->dato;
	//CONTIENE LA DIRECCION DEL NUEVO NODO CIMA
	*ptrCima=(*ptrCima)->ptrSiguiente;
	free (ptrTemp);//LIBERA LA MEMORIA APUNTADA
	return valorElim;//DEVUELVE EL VALOR
}//FIN DE LA INSTRUCCION SACAR
 
//IMPRIME LA PILA
void imprimePila(ptrNodoPila ptrActual){
//SI LA PILA ESTA VACIA
if (ptrActual==NULL)	{
	printf("La pila esta vacia.\n\n");
	}//FIN DEL IF
	else{
	printf("La Pila es:\n");
	//MIENTRAS NO SEA EL FINAL DE LA PILA
	while(ptrActual!=NULL){
		printf("%d -> ", ptrActual->dato);
		ptrActual=ptrActual->ptrSiguiente;
	}//FIN DEL WHILE
	printf("NULL\n\n");
	}//FIN DEL ELSE
}//FIN DE IMPRIMIR FILA
 
//DEVUELVE 1 SI LA PILA ESTA VACIA
//DE LO CONTRARIO 0
int estaVacia(ptrNodoPila ptrCima){
	return ptrCima==NULL;
}//FIN DE LA INSTRUCCION ESTA VACIA
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder