Hola de nuevo amigos. Estoy tratando de insertar caracteres en un cola en C pero se me queda pegado en el ciclo de pedir las letras... Esto es más o menos lo que llevo hecho:
Código:#include <stdio.h> #include <stdlib.h> struct campos { *int valor; *struct campos *prox; }; typedef struct campos Cola; Cola *C1; void CrearCola(Cola **Primero) {/*Crea la Cola por primera vez */ **Primero = NULL; } int EsColaVacia(Cola *Primero) {/*Verifica si la Cola se encuentra vacía o no */ *if (Primero == NULL) * * return 1; *else * * return 0; * } void Encolar(Cola **Primero, int val) { /*Agrega un elemento al final de la Cola */ * Cola *Aux,*Ultimo; * Aux = (Cola*)malloc(sizeof(Cola)); * Aux->valor = val; * Aux->prox = NULL; * if (EsColaVacia(*Primero)==1) * * **Primero = Aux; * else * * *{ * * * *Ultimo = *Primero; * * * *while (Ultimo->prox != NULL) * * * * * * {Ultimo = Ultimo->prox;} * * * *Ultimo->prox = Aux; * * *} } int PrimeroCola(Cola *Primero) { /*Consulta el valor del primer elemento de la Cola */ * *if (EsColaVacia(Primero) == 0) * * * return *Primero->valor; } void Desencolar(Cola **Primero) {/*Elimina el primer elemento de la Cola */ *Cola *Aux; *if (EsColaVacia(*Primero)==1) * * *printf("Cola Vacia imposible Desencolar"); *else * * { * * * Aux = *Primero; * * * *Primero = Aux->prox; * * * free(&Aux); * * } } void Mostrar_TodalaCola(Cola *Primero) { * int Primerocola; * system("cls"); * printf("*************************************************************\n"); * printf("La Cola *se encuentra conformada por los siguientes valores \n"); * printf("*************************************************************\n"); * while(EsColaVacia(Primero)==0) * { * * *Primerocola = PrimeroCola(Primero); * * * * * * * * * * * * *printf("%d%s",Primerocola,"->"); * * *Desencolar(&Primero); * } * printf("Null \n"); } int main () { * *int num,i; char letra; * *CrearCola(&C1); * *printf("Indique cuantas letras tiene la palabra: \n"); * *scanf("%d",&num); * *for (i=1;i<=num;i++) * *{ * * * *printf("Indique letra %d: ",i); * * * *scanf("%s",&letra); * * * *Encolar(&C1,letra); * * * *i++; * *} * *Mostrar_TodalaCola(C1); * *system("pause"); * *return 0; }
otra cosa que probe fue cambiar la parte que dice:
scanf("%s",&letra); por scanf("%c",&letra); de modo que me tome solo un caracter pero me muestra una cola con puros numeros y el ciclo se vuelve loco...![]()



