برای بدست آوردن ارقام عدد باید باقیمانده تقسیم های متوالی به ۱۰ حساب بشه . (تا وقتی که خارج قسمت عدد به ۱۰ صفر نشده عدد رو به ۱۰ تقسیم و باقیمانده به ۱۰ رو داخل آرایه ذخیره کن )
برای مرتب کردن آرایه هم میشه از الگوریتم های sort مثلا bubble sort استفاده کرد .
http://fa.wikipedia.org/wiki/%D9%85%D8%B1%D8%AA%D8%A8%E2%80%8C%D8%B3%D8%A7%D8%B2%DB%8C_%D8%AD%D8%A8%D8%A7%D8%A8%DB%8C
این کد رو ببین الان result یک آرایست که ارقام عدد داخلشه فقط کافیه sort بشه .
int number,temp;
cin>>number;
int n=0;
temp=number;
while(temp!=0)
{
n++;
temp /=10;
}
int result[n];
// int *result=new int[n];
for(int i=0;number!=0;i++)
{
result[i] = number%10;
number /=10;
}