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

[SOLUCIONADO] Problema con un if-for

Estas en el tema de Problema con un if-for en el foro de C/C++ en Foros del Web. Tengo un problema con este programa, muy sencillo, pero la lógica me falla, se tienen que sumar los números pares desde el numero 1 en ...
  #1 (permalink)  
Antiguo 12/10/2013, 12:58
 
Fecha de Ingreso: octubre-2013
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Problema con un if-for

Tengo un problema con este programa, muy sencillo, pero la lógica me falla, se tienen que sumar los números pares desde el numero 1 en caso de impares y del 2, en caso de pares hasta el numero x, pero no logro hacer que funcione, ej.:

cuando evaluó el numero 8, me da que la suma de los pares de 2 a 8 es 8 (????), agradecería mucho su ayuda en decirme que estoy haciendo mal, aquí está el código:





Código:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int x,sum,p,im,i;
    p=0;
    sum=0;
    im=0;
    
    cout<<"Dame un valor para hacer la suma de pares o impares\n";
    cin>>x;
    
    if(x%2==0){
               for(i=2; i<=x; i++)
               {
                        if(p%2==0){
                                 
                        sum=p+i;}
               }
               printf("La suma de los pares desde 2 hasta %d es: %d\n", x,sum);
              }
    else{
               for(i=1; i<=x; i++)
               {
                        if(im%2!=0){
                                 
                        sum=im+i;}
               }
               printf("La suma de los impares desde 1 hasta %d es: %d\n", x,sum);
         }      
                              
    system("PAUSE");
    return EXIT_SUCCESS;
}
  #2 (permalink)  
Antiguo 12/10/2013, 13:57
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Problema con un if-for

p siempre vale 0?
  #3 (permalink)  
Antiguo 12/10/2013, 14:10
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Problema con un if-for

no entendí lo que quieres hacer con tu código, a lo mejor si nos explicas mejor podemos ayudarte.
  #4 (permalink)  
Antiguo 13/10/2013, 15:38
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Respuesta: Problema con un if-for

Hola, si no veo mal, tu error esta en los if que estan adentro de los for.
Fijate en el if para los pares, preguntas si p es par, pero nunca lo incrementas, solo le das el valor 0 cuando lo inicializas... en ves de p tendria que ser i (if(i%2==0)), entonces vas evaluando los valores que toma i mientras se incrementa en el for...

y adentro del if, en la suma tendria que ser sum=sum+i; (no sum=p+i) entonces le vas sumando los i que son pares a tu sum.

Lo mismo para el caso del if de los impares, por lo tanto, las variables p y im estarian de mas...

Espero que te sirva y que se haya entendido.
Saludos!

P/D: fijate que tambien podrias hacer el ejercicio sin el if y el else que estan afuera y solo con un for, asi te quedaria un solo for for(i=1; i<=x; i++) (fijate que empieza con i=1, total despues preguntas adentro con tus if si es par o impar, entonces si es par lo saltea al 1 como hace con el 3, 5, ...)

Última edición por Payaso73; 13/10/2013 a las 15:44 Razón: agrego P/D
  #5 (permalink)  
Antiguo 13/10/2013, 23:23
 
Fecha de Ingreso: octubre-2013
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Problema con un if-for

Cita:
Iniciado por Payaso73 Ver Mensaje
Hola, si no veo mal, tu error esta en los if que estan adentro de los for.
Fijate en el if para los pares, preguntas si p es par, pero nunca lo incrementas, solo le das el valor 0 cuando lo inicializas... en ves de p tendria que ser i (if(i%2==0)), entonces vas evaluando los valores que toma i mientras se incrementa en el for...

y adentro del if, en la suma tendria que ser sum=sum+i; (no sum=p+i) entonces le vas sumando los i que son pares a tu sum.

Lo mismo para el caso del if de los impares, por lo tanto, las variables p y im estarian de mas...

Espero que te sirva y que se haya entendido.
Saludos!

P/D: fijate que tambien podrias hacer el ejercicio sin el if y el else que estan afuera y solo con un for, asi te quedaria un solo for for(i=1; i<=x; i++) (fijate que empieza con i=1, total despues preguntas adentro con tus if si es par o impar, entonces si es par lo saltea al 1 como hace con el 3, 5, ...)


Muchas gracias, no me percate de eso, ya lo comprobe y si era eso.

Etiquetas: funcion, 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 08:52.