例题:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
代码如下:
/*程序分析:先分解出每一位数,再逐步分解出余下的数*/
#include "stdio.h"
main( )
{
long a,b,c,d,e,x;
printf("请输入一组不多于5位的正整数\n");
scanf("%ld",&x);
a=x/10000;/*分解出万位*/
b=x%10000/1000;/*分解出千位*/
c=x%1000/100;/*分解出百位*/
d=x%100/10;/*分解出十位*/
e=x%10;/*分解出个位*/
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
else if (c!=0) printf("there are 3,%ld %ld %ld\n",e,d,c);
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
else if (e!=0) printf("there are 1,%ld\n",e);
}
假设输入的数为345,则输出运行窗口如下:
本周其他练习
C语言编程>第三周 ② 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
C语言编程>第三周 ③ 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
C语言编程>第三周 ⑧ 打印出杨辉三角形(要求打印出10行)。
越努力越幸运!
加油,奥力给!!!