给一个不多于5位数的正整数,要求:
- 求出它是几位数;
- 分别输出每一位数字;
- 按逆序输出各位数字,例如原数为321,应输出123。
利用分支语句判断位数;
定义万位数为myriad,千位数为thousand,百位数为hundred,十位数为ten,个位数为indiv,利用switch选择语句判断并输出逆序数值。
#include<stdio.h>
int main()
{
int a=0;
int place=0;
int myriad,thousand,hundred,ten,indiv;
printf("请输入一个小于等于五位数的正整数:\n");
scanf("%d",&a);
if(a>9999)
place=5;
else if(a>999)
place=4;
else if(a>99)
place=3;
else if(a>9)
place=2;
else
place=1;
printf("该数为%d位数\n",place);
printf("每一位数字为:%d\n",a);
myriad=a/10000;
thousand=(int)(a-myriad*10000)/1000;
hundred=(int)(a-myriad*10000-thousand*1000)/100;
ten=(int)(a-myriad*10000-thousand*1000-hundred*100)/10;
indiv=(int)(a-myriad*10000-thousand*1000-hundred*100-ten*10);
switch(place)
{
case 5:
printf("该数值的逆序数为:%d%d%d%d%d\n",indiv,ten,hundred,thousand,myriad);
break;
case 4:
printf("该数值的逆序数为:%d%d%d%d\n",indiv,ten,hundred,thousand);
break;
case 3:
printf("该数值的逆序数为:%d%d%d\n",indiv,ten,hundred);
break;
case 2:
printf("该数值的逆序数为:%d%d\n",indiv,ten);
break;
case 1:
printf("该数值的逆序数为:%d\n",indiv);
break;
}
return 0;
}
运行结果:
菜菜的代码,希望能够帮助到你哟!