A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 羊口羊口羊 于 2015-9-6 12:13 编辑

给一个不多于5位的正整数,要求:
①求出它是几位数;
②分别输出每一位数字;
③按逆序输出各位数字,例如原数为321,应输出123。

  1. #include <stdio.h>
  2. int main ( )
  3. {  
  4.     int num=0; int n=0;
  5.     while (num>99999 || num<=0)                      //如果用户输入的数不符合要求会提示用户重新输入,直到输入正确为止
  6.    {  
  7.           printf ("请输入一个不多于五位的正整数:\n");
  8.           scanf ("%d", &num);
  9.           if (num>99999 || num<=0)
  10.           printf ("输入错误!请重新输入\n");
  11.     }
  12.   if (num>=10000) n=5;
  13.   else if (num>=1000) n=4;
  14.   else if (num>=100) n=3;
  15.   else if (num>10) n=2;
  16.   else n=1;
  17.   printf ("它是%d位数\n", n);

  18. int mun=0;             //mun指逆序输出的数字。
  19. for (int i=1;i<=n;i++)
  20.   {
  21.       printf("这个数从右到左第%d位是%d\n",i,(num%10));        //num%10 余数即这个数的个位数
  22.       mun=mun*10+num%10;
  23.       num=num/10;      //通过循环得到num的每位上的数
  24.    }
  25.      printf ("这个数的逆序是%d\n",mun);

  26. return 0;
  27. }
复制代码
我有在百度上搜索过这道题,也有其他解法,但我觉得我这个相对简单易懂些。请各位多多指教。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马