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...