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

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
Cita:
Iniciado por vizen Ver Mensaje
hola superchava666 veo que no tienes claro como formar el bucle, bueno simplemente repites la peticion un sumando la cantidad de veces que te indique el primer numero que te introducen, y al tiempo lo vas acumulando y ya solo tienes que mostrarlo. espero que te haya servido. un saludo ;)

Código c:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4.  
  5.    int cantidad, sumando, acumulador=0;
  6.  
  7.    puts("\nCuantos numeros quieres sumar: ");
  8.    scanf("%i",&cantidad); // pedimos la cantidad de sumandos
  9.  
  10.    for(int i=1; cantidad>=i; i++){ // recogemos los sumandos y los acumulamos
  11.       printf("\nIntroduce el sumando numero %i: ", i);
  12.       scanf("%i", &sumando);
  13.       acumulador+=sumando; // que es igual a acumuador=acumulador + sumando;
  14.    }
  15.  
  16.    printf("\nEl resultado de la suma es : %i \n", acumulador); // el resultado
  17.    getchar();// este absorbe el enter del scanf
  18.    getchar();// este espera que introduzcas un caracter y asi ves el resultado
  19.    return 0; // devuelve un cero al sistema diciendo que ha ido todo bien
  20. }



muchas gracias. ahora ya le entendi. se va ir sumando, no se mostraran los cinco numero. gracias en verdad, me resolviste mi duda. :):)