《c++程序设计(第三版)》 谭浩强 编著的p81 T12 有歧义,可能会让读者按照“不满五位的数字最高位补充0”理解,现在该语义下提供一种代码。
#include <iostream>
using namespace std;
int main ()
{
int x,place,yi,er,san,si,wu;
cout <<"please enter x";
cin >>x;
if (x!=0)
{
if (x>=1000&&x<10000)
place =4;
if (x>=10000&x<=99999)
place =5;
if (x>=100&&x<1000)
place =3;
if (x>=10&&x<100)
place =2;
if (x>=0&&x<10)
place =1;
cout <<"place ="<<place<<endl;
wu =int (x/10000);
si =int ((x-10000*wu)/1000);
san =int ((x-10000*wu-1000*si)/100);
er =int ((x-10000*wu-1000*si-100*san)/10);
yi =int (x-10000*wu-1000*si-100*san-10*er);
cout <<wu<<" "<<si<<" "<<san<<" "<<er<<" "<<yi<<" "<<endl<<"fx=";
if (yi>0)
cout <<yi<<er<<san<<si<<wu;
else if (er>0) //yi=0,er>0
cout <<er<<san<<si<<wu;
else if (san>0) //yi,er=0,san>0
cout <<san<<si<<wu;
else if (si>0)
cout <<si<<wu;
else if (wu>0)
cout <<wu;
}
else
cout <<"place="<<1<<" "<<"fx="<<0;
return 0;
}
现在提供运行测试:
语文不好~
见谅~