Ayuda en C++

Guadr?
04 de Septiembre del 2004
Estoy haciendo un programa en c++, pero tengo un problema, el programa es para convertir numeros decimales a binarios, el problema es ke el valor me da al reves de como deberia y kiero saber como invertirlo, si alguien me puede ayudar se lo agradecere, el codigo es el siguiente..

#include <conio.h>
#include <iostream>
using namespace std;

void waitkey (void)
{
getch();
while (kbhit())
{
getch();
}
}

char c='s';
char s1='1';
char s2='0';

main ()

{
int n;

while (c=='s'){
cout<<"nnIntroduzca un numero: ";
cin>>n;
cout<<"nn";
while (n!=1)
{

if (n%2!=0)
{
n=n-1;
n=n/2;
cout<<s1;

}
else if (n%2==0)
{
n=n/2;
cout<<s2;

}

}
cout<<"1";
cout<<"nn";
waitkey();
system("cls");
}
}

noel solw
04 de Septiembre del 2004
Este es un problema conocido, en la conversion de un numero a representacion binaria y hay varias formas de solucionarlo : un array para almacenar las cifras, impresion en la pantalla con manipulacion, etc.
Te mando el sistema utilizando recursion, que es el que mas me gusta.

#include<iostream.h>
#include <iomanip.h>

unsigned int GetNum()
{
unsigned int n;
cout << setw(20) << "get num : ";
cin >> n;
return n;
} // GET NUM

void Bin(unsigned int n)
{
if(!n)
return;
Bin(n/2);
cout << n % 2;
} // BIN

void main(void)
{
unsigned int n = GetNum();
while(n)
{
cout << setw(20) << "binary number : ";
Bin(n);
cout << endl;
n = GetNum();
}
} // MAIN