/*
题目描述:给出一个不多于5位的正整数,要求:
1.求出它是几位数;
2.分别打印出每一位数字;
3.逆序打印出各位数字。
*/
#include <iostream>
#include <cmath>
using namespace std;
int b[6];
int main(){
long int num;
int reverse(int n);
void original_order(int n);
int place=0;
cout<<"enter an integer(0~99999):";
cin>>num;
if(num<0&&num>99999)
{
cout<<"data error,please enter again!";
cin>>num;
}
while(num){
b[place++]=num%10;
num/=10;
}
for(int i=0;i<=place;i++)
num+=(b[i]*pow(10,i));
cout<<"place="<<place<<endl;
cout<<"original order:";
switch(place){
case 5:
original_order(4);
cout<<"reverse order:"<<reverse(num)<<endl;
break;
case 4:
original_order(3);
cout<<"reverse order:"<<reverse(num)<<endl;
break;
case 3:
original_order(2);
cout<<"reverse order:"<<reverse(num)<<endl;
break;
case 2:
original_order(1);
cout<<"reverse order:"<<reverse(num)<<endl;
break;
case 1:
original_order(0);
cout<<"reverse order:"<<reverse(num)<<endl;
break;
}
return 0;
}
int reverse(int a){
int b=0;
while(a){
b=b*10+a%10;
a/=10;
}
return b;
}
void original_order(int x){
for(int i=x;i>=0;i--)
cout<<b[i]<<" ";
cout<<endl;
}
10-02