[AYUDA] Problema muy sencillo en c++

Iniciado por DeIMachine, 8 Noviembre 2015, 01:29 AM

0 Miembros y 1 Visitante están viendo este tema.

DeIMachine

Hola buenas estoy empezando a programar y llevo un día entero resolviendo un problema que seguro que se puede hacer en 5 minutos, el problema es este: https://gyazo.com/6542c560c942442f08009202a0d3cfb6
Mi programa es este pero falla cuando hay un cero en el numero.

int cerificar(int n){
   int i=n%10;
   int potencia=1;
      while(n!=0){
      n=n/10;
      potencia=potencia*100;
      i=i+n%10*potencia;
      }
    return i;
}


La tradición es la mortaja de la sabiduría.

ivancea96

La mejor opción diría yo, es comprobar si la cifra es 0 en el comienzo de cada ciclo del bucle. Si es 0, continuas con el bucle con continue; (o si no quieres usar ese tipo de sentencias, con condiciones).

DeIMachine

Ya está ivan gracias, como has dicho había que poner alguna condición para cuando el modulo de n era 0 porque yo lo del continue no lo he visto todavía.
int cerificar(int n){
    int i=n%10;
    int potencias = 1;
    n=n/10;
    while(n!=0){
        if(n%10>0){
            potencias=potencias*100;
            i=i+n%10*potencias;
           
        }
        n=n/10;
    }
    return i;
}

La tradición es la mortaja de la sabiduría.