给一个不多于5位的正数,求出它是几位数;分别输出每一位数字;按逆序输出各位数字。

 给一个不多于5位的正数,要求:

(1)求出它是几位数;

(2)分别输出每一位数字;

(3)按逆序输出各位数字,例如原数为321,应输出123。

#include<stdio.h>
void main(){
 long n;
 int a,b,c,d,e,m,i;
 scanf("%ld",&n);
 if(n>99999||n<1)  printf("The nunmer %ld is error!!\n",n);
 else{
  if(n>9999&&n<=99999) i=5;
  else
   if(n>999&&n<=9999) i=4;
   else
    if(n>99&&n<=999) i=3;
    else
     if(n>9&&n<=99) i=2;
     else i=1;
  printf("%ld have %d  numbers!\n",n,i);
  switch(i){
   default:printf("error!!\n");break;
   case 5: a=n/10000;
                 m=n%10000;
                 printf("a=%d,m=%d\n",a,m);
                 b=m/1000;
                 m=m%1000;
                 printf("b=%d,m=%d\n",b,m);
                 c=m/100;
                 m=m%100;
                 printf("x=%d,m=%d\n",c,m);
                 d=m/10;
                 e=m%10;
                 printf("a=%d,b=%d,c=%d,d=%d,e=%d\n",a,b,c,d,e);
                 printf("%d%d%d%d%d\n",e,d,c,b,a);
                 break;
   case 4: a=n/1000;
                 m=n%1000;
                 printf("a=%d,m=%d\n",a,m);
                 b=m/100;
                 m=m%100;
                 c=m/10;
                 d=m%10;
                 printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
                 printf("%d%d%d%d\n",d,c,b,a);
                 break;
   case 3: a=n/100;
                  m=m%100;
                  b=m/10;
                  c=m%10;
                  printf("a=%d,b=%d,c=%d\n",a,b,c);
                  printf("%d%d%d\n",c,b,a);
                  break;
   case 2: a=n/10;
                 b=n%10;
                 printf("a=%d,b=%d\n",a,b);
                 printf("%d%d\n",b,a);
                 break;
   case 1: printf("n=%ld",n);
                 break;
  }
 }
 printf("end!!\n");
}

希望高手指导更容易的方法!欢迎留下评语!!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值