将一个整数的各位数字颠倒后输出(C 语言)
对于这个问题,我们首先要提取最后一个数字输出,这可用取模 10 的余数来求得,然后去掉最低位再取模 10 的余数就得到此低位,以此类推便可得到整数数字的反序输出。
来看看 C 语言的 do-while 语句以及 while 语句的实现方法:
#include "stdio.h" void main() { /*用 do-while 语句颠倒整数的各位*/ int i, r; printf("Input an integer:\n"); scanf("%d", &i); do{ r = i % 10; printf("%d", r); }while((i /= 10) != 0); printf("\n"); }
来对比地看一下 while 语句的实现方法:
#include "stdio.h" void main() { /*用 while 语句颠倒整数的各位*/ int i, r; printf("Input an integer:\n"); scanf("%d", &i); if(i == 0) printf("%d", i); while(i != 0) { r = i % 10; printf("%d", r); i /= 10; } printf("\n"); }
其实也没有什么太大的区别。主要是再回顾一下两种语句结构的用法:
当 do-while 循环的循环体中只有一条语句时,不需要用花括号扩起,如可以把:
do{ r = i % 10; printf("%d", r); }while((i /= 10) != 0);
简写成:
do printf("%d", i % 10); while ((i /= 10) != 0);
但是为了可读性呢,咱们还是最好加上花括号吧:
do{ printf("%d", i % 10); } while ((i /= 10) != 0);
还可以使用一种简单的递归的思想来将一个整数的各位数字正序或者反序输出,可以参考一下这里:
http://www.cnblogs.com/catprayer/archive/2010/10/15/1851839.html