给出一个不多于5位数的正整数,求出它是几位数 C++源代码

2016-06-16 10:35:56  分类: c++程序设计第三版谭浩强课后答案  参与:

 给出一个不多于5位数的正整数;
(1)求出它是几位数;
(2)分别打印出每一位数字; 
(3)按逆顺序打印出各位数,例如原有数为123,应输出321

以下是此题的【c++源代码】,需要此题C源代码的点击进入
#include <iostream>
using namespace std;
int main ()
{long int num;
  int indiv,ten,hundred,thousand,ten_thousand,place;
                                   /*分别代表个位,十位,百位,千位,万位和位数*/
  cout<<"enter an integer(0~99999):";
  cin>>num;
  if (num>9999)
       place=5;
  else  if (num>999)
       place=4;
  else  if (num>99)
       place=3;
  else  if (num>9)
       place=2;
  else place=1;
  cout<<"place="<<place<<endl;
  //计算各位数字
  ten_thousand=num/10000;
  thousand=(int)(num-ten_thousand*10000)/1000;
  hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;
  ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
  indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);
  cout<<"original order:";
  switch(place)
    {case 5:cout<<ten_thousand<<","<<thousand<<","<<hundred<<","<<ten<<","<<indiv<<endl;
     cout<<"reverse order:";
     cout<<indiv<<ten<<hundred<<thousand<<ten_thousand<<endl;
     break;
     case 4:cout<<thousand<<","<<hundred<<","<<ten<<","<<indiv<<endl;
     cout<<"reverse order:";
     cout<<indiv<<ten<<hundred<<thousand<<endl;
     break;
     case 3:cout<<hundred<<","<<ten<<","<<indiv<<endl;
     cout<<"reverse order:";
     cout<<indiv<<ten<<hundred<<endl;
     break;
     case 2:cout<<ten<<","<<indiv<<endl;
     cout<<"reverse order:";
     cout<<indiv<<ten<<endl;
     break;
     case 1:cout<<indiv<<endl;
     cout<<"reverse order:";
     cout<<indiv<<endl;
     break;
  }
  return 0;
}   

来源:c++程序设计第三版谭浩强课后答案

本文链接:http://www.wb98.com/cjia/post/cjia_3.12.html


本站文章搜索:

<< 上一篇下一篇 >>

搜索

Tags列表

赞助商链接