El problema es porque getchar() no espera a que des a Intro para guardar el 
caracter introducido por teclado. Lo que ocurre es que antes hay que limpiar 
el buffer de entrada porque si no getchar adquiere el valor en �l contenido 
(que suele ser un Intro al haber metido antes otro dato).

Para ello, prueba a poner justo antes del getchar, la siguiente l�nea:

        fflush(stdin);

Me comentas si te funciona o no.


El Domingo, 20 de Junio de 2004 13:17, Ramiro Aceves escribi�:
|| Hola amigos.
|| No se si es el lugar m�s adecuado para preguntar esto, si no lo es por
|| favor dec�dme d�nde.
|| Hoy me puse a practicar C con un peque�o programita. El objetivo del
|| programa es muy sencillo, partiendo de la longitud de los elementos de
|| una antena yagi para radioaficionado introducidos por el teclado,
|| generar por la salida est�ndar el formato adecuado de entrada para el
|| programa de simulaci�n NEC2 (nummerical electromagnetic code). Bueno, el
|| caso es que no pasaron ni 20 minutos y ya me he quedado estancado en
|| algo que quiz�s para vosotros sea algo trivial, pero por m�s que miro no
|| le veo el fallo.
||
|| El problema es que el programa se "salta" la instrucci�n
|| respuesta=getchar();
|| Para que me funcione debo poner dos l�neas iguales:
||
|| respuesta=getchar();
|| respuesta=getchar();
||
|| �Alguien me puede aportar alguna idea?
|| Muchas gracias.
||
|| /*this program generates a *.NEC file for yagi antenna modelling*/
||
|| #include <stdio.h>
|| int N;
|| int a;
|| char respuesta='n';
|| float longitud[100];
|| void main(void){
||
|| printf("number of elements? [1-100]\n");
|| scanf("%d",&N);
||
||
|| while(respuesta=='n')
|| {
|| printf("enter element length, starting from reflector to last director
|| [mm]\n");
|| for (a=0;a<N;a++)    {
||     printf("element number %d : ",a);
||     scanf("%f",longitud+a);
||
||             }
|| printf("You have entered:\n");
|| for (a=0;a<N;a++)    {
||     printf("element number %d : ",a);
||     printf("%f\n",*(longitud+a));
||
||             }
||
|| printf("is data correct? [y/n]\n");
|| respuesta=getchar();
|| respuesta=getchar();
||
|| }
||
||
||
||
||
|| }

Responder a