给一位不多余5位的正整数,要求:求出它是几位数,分别输出每一位数字,按逆序输出各位数字

#include<stdio.h>
int Weishu(int number) //求出位数
{
 int p;
    if (number>9999)
         p = 5;
    else if(number>999)
         p = 4;
    else if(number>99)
         p = 3;
    else if(number>9)
         p = 2;
    else p = 1;
    return p;
}
int Shuzi(int number) //求每位数
{
 int a,b,c,d,e;
 a = number/10000;
    b = (number-a*10000)/1000;
    c = (number-a*10000-b*1000)/100;
    d = (number-a*10000-b*1000-c*100)/10;
    e = (number-a*10000-b*1000-c*100-d*10);
    printf("万位数:%d,千位数:%d,百位数:%d,十位数:%d,个位数:%d\n",a,b,c,d,e);
}
void Nixu(int number) //逆序
{
    int a,b,c,d,e;
 a = number/10000;
    b = (number-a*10000)/1000;
    c = (number-a*10000-b*1000)/100;
    d = (number-a*10000-b*1000-c*100)/10;
    e = (number-a*10000-b*1000-c*100-d*10);
    int z = Weishu(number);
    switch (z)
 {
   case 1:
        {
     printf("逆序为:%d\n",e);
     }break;
   case 2:
        {
   printf("逆序为:%d%d\n",e,d);
         }break;
   case 3:
        {
     printf("逆序为:%d%d%d\n",e,d,c);
         }break;
   case 4:
        {
          printf("逆序:%d%d%d%d\n",e,d,c,b);
         }break;
   case 5:
         {
    printf("逆序为:%d%d%d%d%d\n",e,d,c,b,a);
          }break;
 }
}   
int main()
{
 int number;
 scanf("%d",&number);
 printf("位数:%d\n",Weishu(number));
 Shuzi(number);
 Nixu(number);
 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值