[C con Clase] Ayuda Ejemplo 6.3 de Curso de C++

Julian Felipe Farfan Benitez julianfelipefarfan en hotmail.com
Sab Mar 3 01:16:23 CET 2012


El pasado 2012-03-03 00:08:57, Steven Davidson escribió:
 
SD> Hola Julián,
SD> 2012/3/3 Julian Felipe Farfan Benitez <julianfelipefarfan en hotmail.com>:
SD> > He utilizado el siguiente codigo para representar el ejercicio 6.3:
SD> >
SD> Creo que te refieres al ejemplo 6.4.
SD> >
SD> > #include<iostream>
SD> > using namespace std;
SD> >
SD> > int main()
SD> > {
SD> >    int x=1;
SD> >
SD> >    do{
SD> >       cout<<x<<",";
SD> >       x+=4;
SD> >         cout<<x<<",";
SD> >         x-=2;
SD> >       }while(x!=23);
SD> >
SD> >
SD> >
SD> >         system("pause");
SD> >         }
SD> >
SD> > ---------------------------------------------------------------------------
SD> >
SD> > Pero sin embargo el resultado no es el ideal quisiera saber en que estoy fallando gracias.
SD> >
SD> El problema es que 'x' guarda el valor de 23 al hacer la suma de 4.
SD> Sin embargo, no hay ninguna comprobación en este momento, así que
SD> continúa ejecutándose la siguiente resta de 2 en esta iteración. Al
SD> comprobar 'x', ésta contiene el valor de 21 y como no es 23, seguimos
SD> iterando. Aparecen los valores 21 y 25 en pantalla y al comprobar 'x',
SD> ésta contiene 23 y por tanto se termina el bucle.
SD> Tendrías que terminar el bucle justo después de sumar 4 a 'x', ya que
SD> en este ejemplo es cuando se produce el primer número 23.
SD> Espero haber aclarado la duda.
SD> Steven
SD> _______________________________________________
SD> Lista de correo Cconclase Cconclase en listas.conclase.net
SD> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
SD> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ


Muchas Gracias si la solucion que le di fue iniciar el ciclo por fuera es decir ejecutarlo una vez por fuera e iniciar el ciclo con la resta de la siguiente manera: 

*-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-*

#include<iostream>
using namespace std;

int main()
{
    int x=1;
    cout<<x<<",";
    x+=4;
    do{
       x-=2;
       cout<<x<<",";
         x+=4;
         if(x==23)
         cout<<x<<".";
         else
         cout<<x<<",";
       }while(x!=23);

         system("pause");
         }

*-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-**-*-*


Más información sobre la lista de distribución Cconclase