输入一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

繁琐的方法:

<span style="font-size:24px;">    int a  = 0;
    printf("输入一个不多于5位的正整数:");
    scanf("%d", &a );
    printf("%d", a);
    int x = 0,y = 0, z = 0, m = 0, n = 0;
    if (a / 10000 != 0) {
        printf("是一个五位数\n");
        x  = a / 10000 ;//求万位
        y = a % 10000 / 1000;//求千位
        z = a % 10000 % 1000 / 100;//求百位
        m = a % 10000 % 1000 % 100 / 10;//求十位
        n = a % 10000 % 1000 % 100 % 10;//求个位
        printf("逆序打印为:%d%d%d%d%d",n , m , z, y ,x);
    }else if(a / 1000 !=0){
        printf("是一个四位数\n");
        y = a / 1000;//求千位
        z = a % 1000 / 100;//求百位
        m = a % 10000 % 1000 % 100 / 10;//求十位
        n = a % 10000 % 1000 % 100 % 10;//求个位
        printf("逆序打印为:%d%d%d%d",n , m , z, y);
    }else if(a / 100 !=0){
        printf("是一个三位数\n");
        z = a / 100;//求百位
        m = a % 100 / 10;//求十位
        n = a % 10;//求个位
          printf("逆序打印为:%d%d%d",n , m , z);
    }else if(a / 10 !=0){
        printf("是一个两位数\n");
        m = a % 100 / 10;//求十位
        n = a % 100 % 10;//求个位
        printf("逆序打印为:%d%d",n , m);
    }else{
        printf("是一个一位数\n");
        n = a % 10;//求个位
        printf("逆序打印为:%d", n);
    }
</span>

简化后的方法,如下:

<pre name="code" class="cpp"><span style="font-size:24px;">int number = 0, a  = 0, count = 0;
       printf("请输入一个数字");
       scanf("%d", &number);
      while(number > 0)//输入的数
       {
           a  = number % 10;//求最后一位数,也就是个位上的数
           ++count;//没执行一次,count自动增加
           printf("%d ", a);//执行第一遍,打印个位上的数,第二遍,打印十位上的数
           number = number / 10;//求输入的数最大位上的数,直到number为0.
       }
       printf("\n这个数是%d位数", count);//输出count也就是输入数的位数
</span>


 

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值