Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dragonlady en 19 Abril 2015, 22:46 pm



Título: ayuda ejercicio con while o for
Publicado por: dragonlady en 19 Abril 2015, 22:46 pm
Buenas, desde ya gracias por la ayuda. Tengo un ejercicio para hacer, que no debería ser tan complicado pero me estoy enliando mucho con el mismo, ya busqué en google pero esto del for, while y do while no me queda muy claro. La letra dice:

(https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-xpt1/v/t1.0-9/11165056_10205721365168928_8828510941209256840_n.jpg?oh=23ef263c74aa58d1829da15dc33773cd&oe=55DA29BE&__gda__=1436730551_0b81be3ac7051ed7804f73d08461c585)

Les muestro lo que yo he hecho hasta ahora:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    int num;
  7.    int numpar;
  8.    int numimp;
  9.    int cant;
  10.    int maxcant;
  11.    maxcant=10;
  12.  
  13.    printf ("ingrese cuantos numeros forman la secuencia (maximo 10): \n");
  14.    scanf (" %d", &cant);
  15.  
  16.    for(num=1; cant<=maxcant; cant=2)
  17.    {
  18.        printf ("ingrese los numeros: \n");
  19.        scanf (" %d ", &num);
  20.            if ((num%2==0) && (maxcant<=10))
  21.            {
  22.                    printf("numero par");
  23.                    scanf (" %d", &numpar);
  24.            }
  25.            else
  26.            {
  27.                if ((num%2!=0) || (maxcant>10))
  28.                {
  29.                    printf("no aparecieron numeros pares");
  30.                    scanf(" %d", &numimp);
  31.  
  32.                }
  33.                if ((maxcant<1) || (num<0))
  34.                {
  35.                    break;
  36.                }
  37.            }
  38.  
  39.            if ((num%2==0) && (maxcant<=10))
  40.            {
  41.                printf("suma de numeros pares de la secuencia: ");
  42.                scanf (" %d", numimp++);
  43.            }
  44.  
  45.    }
  46.    return 0;
  47. }
  48.  

Mi duda es si voy muy mal en el razonamiento y si, ¿sería mejor usar for o si usando while me quedaría mas facil?


Título: Re: ayuda ejercicio con while o for
Publicado por: daryo en 19 Abril 2015, 23:18 pm
no esta mal asi tambien funciona pero en general usa while cuando no sepas exactamente cual es el limite(maxcant lo define el usuario)


Título: Re: ayuda ejercicio con while o for
Publicado por: dragonlady en 19 Abril 2015, 23:31 pm
no esta mal asi tambien funciona pero en general usa while cuando no sepas exactamente cual es el limite(maxcant lo define el usuario)

Gracias por contestar! Pensé en usar while, pero me fui por el lado de for al final.
Lo que pasa es que al correrlo me dice:

(https://scontent-mia.xx.fbcdn.net/hphotos-xap1/v/t1.0-9/11159517_10205721683536887_6681266445633292475_n.jpg?oh=db1d36cc2fd50567bcce66e69ab586d3&oe=559EC3AC)

Y se me complica como hacerle al final para que me muestre solo el primer y el último numero par y la suma de todos, osea tendría que hacer una sumatoria solo de los números pares. Pero no me doy cuenta de como :|


Título: Re: ayuda ejercicio con while o for
Publicado por: daryo en 19 Abril 2015, 23:38 pm
acaba todos tus printf en \n
Código:
printf("numero par\n");
y asi

el scanf es para pedir info al usuario asi que sobra dentro de los if, si quieres sumar todos los numeros pares
Código:
numpar=numpar+num;
y arriba en ves de
Código:
int numpar;
pones
Código:
int numpar=0;

al final del for si ese numpar es = 0 es porque no hay pares y lo pones en un if


Título: Re: ayuda ejercicio con while o for
Publicado por: dragonlady en 20 Abril 2015, 00:11 am
acaba todos tus printf en \n
Código:
printf("numero par\n");
y asi

el scanf es para pedir info al usuario asi que sobra dentro de los if, si quieres sumar todos los numeros pares
Código:
numpar=numpar+num;
y arriba en ves de
Código:
int numpar;
pones
Código:
int numpar=0;

al final del for si ese numpar es = 0 es porque no hay pares y lo pones en un if


Ahí arreglé eso, igual me da un error de que si le ingreso una cantidad de números 5, y le voy ingresando números pares se detiene en 2 números y no me hace la suma. Pero también se me cierra directamente la consola y me tira error que debe cerrarse de windows. Así que no se, cuando pueda lo pruebo en ubuntu a ver que pasa.

Gracias por la ayuda!!


Título: Re: ayuda ejercicio con while o for
Publicado por: daryo en 20 Abril 2015, 00:17 am
no te he dicho todo lo que tienes que cambiar e mirado el codigo un poco por encima jeje.talves falta corregir algo tambien o prueba poner fflush(stdout); como primera linea dentro del while

  :P


Título: Re: ayuda ejercicio con while o for
Publicado por: dragonlady en 20 Abril 2015, 00:20 am
no te he dicho todo lo que tienes que cambiar e mirado el codigo un poco por encima jeje.talves falta corregir algo tambien o prueba poner fflush(stdout); como primera linea dentro del while

  :P

De esas cosas no se igual, fflush, ni nada de eso. Por ahora con lo que me han enseñado nada más, más básico. Lo voy a revisar de nuevo y ver que le puedo cambiar :)

Muchas gracias, de nuevo.