题目:
输入一个不多于5位的数,要求:1、输出它是几位数;2、分别打印出每一位数字;3、按照逆序打印出各位数字。
思路一:通过数组,保存每一位数字。
#include<iostream>
using namespace std;
int main(){
char a[5];
int i=0;
while((a[i]=getchar())!='\n'){
i++;
if(i>5){
i--;
break;
}
}
cout<<"您输入了"<<i<<"位数"<<endl;
int j;
for(j=0;j<i;j++){
cout<<"第"<<(j+1)<<"位是:"<<a[j]<<endl;
}
cout<<"逆序输出的结果是:";
for(j=i-1;j>=0;j--) cout<<a[j];
cout<<endl;
return 0;
}
运行通过
思路二:通过数字的运算得到结果。
#include<iostream>
using namespace std;
int main(){
long s;
cout<<"请输入一个不大于5位的数字:";
cin>>s;
int i=10000,j=5,k,b=s;
for(;j>0;j--){
if(s/i)
{
k=j;
cout<<"您输入的是"<<j<<"位数"<<endl;
break;
}
i=i/10;
}
for(j=0;j<k;j++){
cout<<"第"<<(j+1)<<"位的数是:";
cout<<(s/i)<<endl;
s=s-(s/i)*i;
i=i/10;
}
cout<<"逆序输出是:";
i=0;
while(b!=0) {
i*=10;
i+=b%10;
b/=10;
}
cout<<i<<endl;
return 0;
}