Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/11/2010, 17:06
Acanore
 
Fecha de Ingreso: abril-2009
Ubicación: Incomoda
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 0
En C++ estoy sumando 10000 + 1000 y me da 10999

Hola, estoy volviendo a coger el C++ y me propuse a hacer unos ejercicios de los típicos que ponen para practicar, pero con éste me he tomado ya mucho tiempo y me parece curioso que me este retornando una suma de forma incorrecta.
¿Porque sucede ésto? Pruebo con el número 24 y me da de salida:

BIN = 10999 <--- debería dar 11000
OCT = 30

Código C++:
Ver original
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4.  
  5.  
  6. int xtoy(int x, int y){
  7.     int res = 0;
  8.     int c = 0;
  9.     for(int i = x; i > (y-1); x=int(i/=y), c++){
  10.         res+=pow(10,c)*(i%y);
  11.     }
  12.     res+=pow(10,c)*x;
  13.     return res;
  14. }
  15.  
  16. int main(int argc, char **argv)
  17. {
  18.     int n;
  19.     puts("CONVERSOR DE DECIMAL A: BIN Y OCT");
  20.     puts("=============================================================");
  21.     cout<<"Ingrese un numero: ";
  22.     cin>>n;
  23.     cout<<"BIN= "<<xtoy(n, 2)<<endl;
  24.     cout<<"OCT= "<<xtoy(n, 8)<<endl;
  25.     return 0;
  26. }

(Más info por si las moscas): Utilizo el Code::Blocks que utiliza el "mingw32-g++.exe" para compilar.