Tema: no enteindo
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/03/2014, 11:40
superchava666
 
Fecha de Ingreso: febrero-2014
Ubicación: Guadalajara
Mensajes: 34
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: no enteindo

Cita:
Iniciado por vosk Ver Mensaje
Pero si ya lo tienes, solo has de rellamar a scanf el nº de veces que te diga el primer numero.
Escribes 3 123 456 789, ejecutas scanf con un solo entero y lo guardas en el contador, luego ejecutas scanf para un solo entero el nº de veces que te dice el contador.

Por pasos, primero declaras las variables:

Código C:
Ver original
  1. int contador, numero;

En contador estara el numero de valores y en numero estara cada numero leido de stdin. Ahora pides la linea de numeros:

Código C:
Ver original
  1. printf("Numeros: ");
  2. scanf("%d", &contador);

Escribes "3 123 456 789", ahora en stdin tienes ese texto, pinchas enter y se ejecuta scanf que de stdin extrae solo la primera coincidencia con el formato, en este caso %d saca el 3 y deja en el stdin el resto ("123 456 789\n", antes de pinchar el enter el \n final aun no está).

Ahora haces el bucle:

Código C:
Ver original
  1. while(contador > 0) {
  2.     scanf("%d", &numero);
  3.     printf("Leido %d\n", numero);
  4.  
  5.     contador--;
  6. }

En el primer scanf extrae 123 y deja "456 789\n", en el segundo extrae 456 y deja "789\n" y en el tercero extrae 789 y deja el \n que corresponde a la tecla enter que pinchaste antes del scanf del contador.

Suerte con eso
Saludos
vosk

gracias, la verdad no me ayudo tu explicación. se me hizo algo reborujada. pero gracias por tomarte la molestia de ayudarme.

gracias