Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] no enteindo

Estas en el tema de no enteindo en el foro de C/C++ en Foros del Web. hola buen día. hoy me surgió una duda con un programa. el enunciado dice: "escriba progrma que sume una secuencia de enteros.asuma que el primer ...
  #1 (permalink)  
Antiguo 15/03/2014, 08:58
 
Fecha de Ingreso: febrero-2014
Ubicación: Guadalajara
Mensajes: 34
Antigüedad: 10 años, 2 meses
Puntos: 0
no enteindo

hola buen día.

hoy me surgió una duda con un programa. el enunciado dice: "escriba progrma que sume una secuencia de enteros.asuma que el primer entero leido mediante sanf especifica el numero de valores restantes que se introduciran. su programa debe de leer únicamente un valor cada vez que se ejecute scanf. una secuencia típica podria ser.

5 100 20 300 400 500

donde 5 indica que se sumarán los cinco numero siguientes. "



bueno no me quedo muy claro así. yo tengo esta idea para el enuniado :



int main(){
int numero;
int i;

printf("introdusca el numero:\n");
scanf("%d",&numero);

for(i=0; i<=numero;i++){

printf("%d , \t", numero); <---------------------------------------------- en estas parte me trabé. :S no se si esta bien

numero=100; < ------------------------------------------ aqui igual

numero < ----------------------------------------------------- aqui ya no supe que poner



}





}
  #2 (permalink)  
Antiguo 15/03/2014, 10:08
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: no enteindo

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
  #3 (permalink)  
Antiguo 17/03/2014, 14:40
 
Fecha de Ingreso: enero-2014
Mensajes: 60
Antigüedad: 10 años, 3 meses
Puntos: 1
una ayudita :)

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

  #4 (permalink)  
Antiguo 18/03/2014, 11:40
 
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
  #5 (permalink)  
Antiguo 18/03/2014, 11:42
 
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. :):)

Etiquetas: int, numero, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:49.