Intenta una experiencia al azar!

viernes, agosto 15, 2008

Examen sopresa 1
Posteado por: Fableton
El dia de ayer el profesor MONTIEL PEREZ JESUS YALJA (esto va a servir cuando un escomio quiera saber quien es este wey) nos dejo un pequeño examen sorpresa en equipos de 2 el cual consistia en esto:

int main(void){

int n, i=0;
printf("Q numero quieres invertir??");
scanf("%d",&n);
voltea(n); <------ Esta Funcion tiene q voltear el numero entero
Lo q tiene q hacer el programa es q si te dan un numero como 788965 tienes q imprimir el numero 569887 y tenemos q hacer una funcion y pues yo pense en una array e ir guardando pero en ayuda con mi compañero(no se quien hizo la mayotia de el trabajo... creo q si fue trabajo en equipo) llegamos a la conclusión de q teniamos q separar los digitos de alguna forma y se nos ocurrio separarlo con decimales entonces planteamos lo siguiente

Si tenemos un numero 12345 podemos dividirlo entre 10 para q nos quede 1234.5 entonces el .5 lo guardamos en un float y separamos el 123 guardandolo en un int... y así recursivamente hasta q el int nos de 0 de tal forma

Codigo Explicacion Ejemplo


y= n; <---- "n" es el numero q queremos separar y= 1234
y/= 10; <----- aqui y va a ser el numero flotantey= 123.4000
x = y; <-----y aqui guardamos el flotante ya separado en el entero por lo cual solo se guarda la parte entera x=123
y-= x; <---- aqui restamos la parte entera al flotante por q todavia tenemos todos los numeros y=.4000
y*= 10; <---- aqui multiplicamos por 10 para transformar el decimal en entero y=4.0000


Con esto ya tenemos separado un numero en Y(podemos usar %0.f para q no se vean los decimales) y los numero sobrantes estan en X y lo q hacemos es repetir esto hasta q ya no tengamos nada en X y pues por q el tema de la clase era recursividad quedo de la siguiente forma, aparte de q imprimimos el resultado, pero puede guardarse en un array o manipular los numero dependiendo de lo q queramos hacer

void voltea(int n){
int x;
float y;
if(n==0){
return ;}
else
y= n;
y/= 10;
x = y;
y-= x;
printf("%.0f",y*10);
return voltea(x);;
}

el if sirve para cuando la funcion mande a llamarse con x=0 se terminara y pues despues de separar el decimal se manda a llamar la funcion pero pues con un numero menos

y pues ya el codigo total queda de la siguiente forma

#include
#include
#include

void voltea(int );

int main(void){

int n, i=0;
printf("Q numero quieres invertir??");
scanf("%d",&n);
voltea(n);
getch();
return 0;
}

void voltea(int n){
int x;
float y;
if(n==0){
return ;}
else
y= n;
y/= 10;
x = y;
y-= x;
printf("%.0f",y*10);
return voltea(x);;
}

y pues puedes robártelo o hacerle lo q quieras pero pues mínimo deja un comentario de q te lo robaste...

8 comentarios:

  1. Tu algoritmo tiene un error, una vez quise hacer lo mismo pero la cosa sucede:
    Y es flotante (123.4)
    X es entero (123)

    Si haces la resta Y-X no te queda 0.4, te queda 0 en otras palabras:

    Y=0
    X=123

    Resultado: FAIL!

    A mi me pasó eso una vez....

    ResponderEliminar
  2. Nel!!! no le hagan caso a megadan no sabe programas mi algoritmo esta bien... ha de haber drogado cuando comento eso...

    ResponderEliminar
  3. después de exhaustivas pruebas, concluyo 2 cosas:

    -Su algoritmo está bien
    -Yo me equivoqué y pido una disculpa pública por los inconvenientes q esto pudo haber causado

    CONCLUSIÓN FINAL:
    I FAIL!

    ResponderEliminar
  4. También resuelve los de Yaxkin T_T ..
    prometo pagar con 100 comentarios al díaaa XD ..

    ResponderEliminar
  5. Quien es Yaxkin?? pero pues... no creo q sea imposible...(ja)

    ResponderEliminar
  6. Yaxkin es nuestro profe de Progra.
    Agradecimientos a Denhi por haber comentado ^^

    ResponderEliminar
  7. no mames tanta mamada si solo sacando el modulo lo haces en menos lineas de codigo
    300/10=30
    300%10=0----------modulo
    y asi lo vas guardando
    y ya.................

    ResponderEliminar
  8. jajaja ese codigo es una mamada, al igual que la mayoria de los que estudian en esa escuela culera.

    ResponderEliminar

Gracias por comentar en A-Weboo!!!
Sigue al pendiente del blog suscribiendote a RSS o Atom (marcadores dinámicos) n_n

Diseño realizado por el team A-weboo!!!

A-weboo se ve mejor en Mozilla Firefox

Come Frutas y Verduras