菜鸟求救!请耐心!!!
帮我简化这段程序,谢谢!
#include"iostream.h"
main()
{int i=0;
long a,b=0;
cin>>a;
b=a;
while(b>0)
{if(b<0||b>=100000)
break;
else
{b=b/10;i++;}
}
cout<<"该数为"<<i<<"位数"<<endl<<endl;
//显示几位数
if(i==1)
cout<<a;
else if(i==2)
cout<<a/10<<endl<<a-a/10*10;
else if(i==3)
cout<<a/100<<endl<<(a-a/100*100)/10<<endl<<a-a/10*10<<endl;
else if(i==4)
cout<<a/1000<<endl<<(a/100*100-a/1000*1000)/100<<endl<<(a/10*10-a/100*100)/10<<endl<<a-a/10*10;
else if(i==5)
cout<<a/10000<<endl<<(a/1000*1000-a/10000*10000)/1000<<endl<<(a/100*100-a/1000*1000)/100<<endl<<(a/10*10-a/100*100)/10<<endl<<a-a/10*10;
else
cout<<"error!";
cout<<endl<<endl;
//显示每一个数
if(i==1)
cout<<a;
else if(i==2)
cout<<a-a/10*10<<a/10;
else if(i==3)
cout<<a-a/10*10<<(a-a/100*100)/10<<a/100;
else if(i==4)
cout<<a-a/10*10<<(a/10*10-a/100*100)/10<<(a/100*100-a/1000*1000)/100<<a/1000;
else if(i==5)
cout<<a-a/10*10<<(a/10*10-a/100*100)/10<<(a/100*100-a/1000*1000)/100<<(a/1000*1000-a/10000*10000)/1000<<a/10000;
else
cout<<"error!";
//逆序显示这个数
}