本帖最后由 羊口羊口羊 于 2015-9-6 12:13 编辑
给一个不多于5位的正整数,要求:
①求出它是几位数;
②分别输出每一位数字;
③按逆序输出各位数字,例如原数为321,应输出123。
- #include <stdio.h>
- int main ( )
- {
- int num=0; int n=0;
- while (num>99999 || num<=0) //如果用户输入的数不符合要求会提示用户重新输入,直到输入正确为止
- {
- printf ("请输入一个不多于五位的正整数:\n");
- scanf ("%d", &num);
- if (num>99999 || num<=0)
- printf ("输入错误!请重新输入\n");
- }
- if (num>=10000) n=5;
- else if (num>=1000) n=4;
- else if (num>=100) n=3;
- else if (num>10) n=2;
- else n=1;
- printf ("它是%d位数\n", n);
- int mun=0; //mun指逆序输出的数字。
- for (int i=1;i<=n;i++)
- {
- printf("这个数从右到左第%d位是%d\n",i,(num%10)); //num%10 余数即这个数的个位数
- mun=mun*10+num%10;
- num=num/10; //通过循环得到num的每位上的数
- }
- printf ("这个数的逆序是%d\n",mun);
- return 0;
- }
复制代码 我有在百度上搜索过这道题,也有其他解法,但我觉得我这个相对简单易懂些。请各位多多指教。
|
|