以该例题讲述用C语言进行数字逆序输出和顺序输出:
1.输入一个整数(可以为正数,负数或0),要求:
(1)求出它是几位数。
(2)逆序输出每个数字。
(3)顺序输出每个数字。
整体架构流程
如上图所示:
以给一个整数n=12345为例
(1)如果想逆序输出每个数字,那么需要先得到个位,再丢掉个位。
则n对10取余,余5(得到个位),然后丢掉个位:进行n=n/10(丢掉个位),此时n=1234;
n再对10取余,余4,此时n=123,再进行n=n/10;
n再对10取余,余3,此时n=12,再进行n=n/10;
n 再对10取余,余2,此时n=1;再进行n=n/10,则n=0;(以上可用循环)
(2)如果想顺序输出每个数字,那么需要先得到高位,再丢掉高位。
则n先除10000,得1(得到高位),然后丢掉高位:进行n=n%10000,得2345(丢掉高位);
n再除1000,得2,再进行n%1000,此时n=345;
n再除100,得3,再进行n%100,此时n=45;
n 再除10,得4,再进行n%10,此时n=5;
n再除1,得5,再进行n%1,此时n=0;(以上可用循环)
疑惑点
(1)由上可知:n=0时,我们不需要0这个数字结果。所以我们可以用do.....while()循环。
先执行,后判断(判断条件:n!=0)。
(2)在顺序输出时,我们发现上述12345为何先除10000?还有后面除1000,100,10等。
因为12345是个五位数,除10000刚好商1,1是最高位。那么可看出规律:
想得到高位,除的10000,1000,100.....的0的个数刚好比该数的位数少1。
那么我们必须先得统计出该数是个几位数,才能进行下一步,这也是例题第一要求:求该数是个几位数。
代码示例
小结:
重点学习“得到个位,丢掉个位”,“得到高位,丢掉高位”的方法。