第三章——输入一个不多于5位的数,然后输出它是几位数,输出它的每一位数,逆序输出该数。

题目:

输入一个不多于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; 
}


 

posted @ 2013-04-21 21:36  千手宇智波  阅读(472)  评论(0)    收藏  举报