U problema con mi compilador
Hola, como les va, tengo un problema en un trabajito que hacia para mi hermano, yo trabajo con el compilador devc++ de la pagina www.bloodshed.net
y uso las librerias allegro de la direccion alleg.sourceforge.net
Estaba haciendo un codigo para leer numeros desde el teclado en modo grafico (aqui no se usa scanf ni cin ni gets), la funcion que se usa es readkey(); el punto es que desarrolle un algoritmo bien simple para invertir el orden de un numero y cuando lo compilo el numero que me sale no coincide con el que tipeé, para que se vea solo el algoritmo que falla aislé la funcion de todo el programa y aqui va:
#include <stdio.h>
#include <math.h>
int invertir (int num, int factor)
{
int residuo, temp, num1=0, po, i, j=0;
for (i=factor; i>=0; i--)
{
po=pow(10,i);
residuo=num%po;
temp=(num-residuo)/po;
num1=num1+temp*pow(10,j);
num=residuo;
j++;
}
return num1;
}
int main()
{
int a=0;
a=invertir(4573, 3);
printf("valor final %dn", a);
printf("valor original %dn", 4573);
}
Es bien simple lo que debe hacer el programa es invertir el numero, esto es util ya que cuando tipeas un 123, la maquina en modo grafico lee primero el 1 luego el 2 y por ultimo el 3, entonces tengo que invertirlo para usarlo.
En linux con el compilador gcc no me da problemas pero con el devc++ y el compilador djgpp el programa falla, si alguien ha tenido el mismo problema que me explique porque es la falla, de repente yo hice algo mal.
Ojo estoy trabajando en c.
y uso las librerias allegro de la direccion alleg.sourceforge.net
Estaba haciendo un codigo para leer numeros desde el teclado en modo grafico (aqui no se usa scanf ni cin ni gets), la funcion que se usa es readkey(); el punto es que desarrolle un algoritmo bien simple para invertir el orden de un numero y cuando lo compilo el numero que me sale no coincide con el que tipeé, para que se vea solo el algoritmo que falla aislé la funcion de todo el programa y aqui va:
#include <stdio.h>
#include <math.h>
int invertir (int num, int factor)
{
int residuo, temp, num1=0, po, i, j=0;
for (i=factor; i>=0; i--)
{
po=pow(10,i);
residuo=num%po;
temp=(num-residuo)/po;
num1=num1+temp*pow(10,j);
num=residuo;
j++;
}
return num1;
}
int main()
{
int a=0;
a=invertir(4573, 3);
printf("valor final %dn", a);
printf("valor original %dn", 4573);
}
Es bien simple lo que debe hacer el programa es invertir el numero, esto es util ya que cuando tipeas un 123, la maquina en modo grafico lee primero el 1 luego el 2 y por ultimo el 3, entonces tengo que invertirlo para usarlo.
En linux con el compilador gcc no me da problemas pero con el devc++ y el compilador djgpp el programa falla, si alguien ha tenido el mismo problema que me explique porque es la falla, de repente yo hice algo mal.
Ojo estoy trabajando en c.
pero has verificado que el numero que ingresa a la funcion es el mismo que tu ingresas???????
Si, pero he notado que por alguna razon el compilador al hacer las operaciones mal, y no se porque incluso he hecho el programa para que paso por paso me de los resultados de las operaciones y se equivoca, mejor mando el codigo para que todos lo vean.
P.D: En linux no me da ningun problema.
El compilador es djgpp y dev-c++
P.D: En linux no me da ningun problema.
El compilador es djgpp y dev-c++