ayuda ejercicio con while o for

Iniciado por dragonlady, 19 Abril 2015, 22:46 PM

0 Miembros y 2 Visitantes están viendo este tema.

dragonlady

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:



Les muestro lo que yo he hecho hasta ahora:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int num;
   int numpar;
   int numimp;
   int cant;
   int maxcant;
   maxcant=10;

   printf ("ingrese cuantos numeros forman la secuencia (maximo 10): \n");
   scanf (" %d", &cant);

   for(num=1; cant<=maxcant; cant=2)
   {
       printf ("ingrese los numeros: \n");
       scanf (" %d ", &num);
           if ((num%2==0) && (maxcant<=10))
           {
                   printf("numero par");
                   scanf (" %d", &numpar);
           }
           else
           {
               if ((num%2!=0) || (maxcant>10))
               {
                   printf("no aparecieron numeros pares");
                   scanf(" %d", &numimp);

               }
               if ((maxcant<1) || (num<0))
               {
                   break;
               }
           }

           if ((num%2==0) && (maxcant<=10))
           {
               printf("suma de numeros pares de la secuencia: ");
               scanf (" %d", numimp++);
           }

   }
   return 0;
}


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?

daryo

no esta mal asi tambien funciona pero en general usa while cuando no sepas exactamente cual es el limite(maxcant lo define el usuario)
buenas

dragonlady

Cita de: 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)

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:



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 :|

daryo

#3
acaba todos tus printf en \n
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
numpar=numpar+num;

y arriba en ves de
int numpar;

pones
int numpar=0;

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

dragonlady

Cita de: daryo en 19 Abril 2015, 23:38 PM
acaba todos tus printf en \n
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
numpar=numpar+num;

y arriba en ves de
int numpar;

pones
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!!

daryo

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
buenas

dragonlady

Cita de: 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

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.