首页 > 其他 > 详细

c - 逆序/正序输出每位.

时间:2014-10-18 11:07:36      阅读:172      评论:0      收藏:0      [点我收藏+]
 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 /*
 5 判断一个正整数的位数,并按正序,逆序输出他们的位.
 6 */
 7 
 8 int 
 9 invert(int);
10 
11 void
12 order(int, int);
13 
14 int 
15 main(void) {
16     int n = 56789;
17     printf("original:%d\n", n);
18     int bitCont = invert(n);
19     printf("\nbits: %d\n", bitCont);
20     order(n, bitCont);
21     return 0;
22 }
23 
24 //逆序输出每一位并记录位数.
25 int 
26 invert(int n) {
27     int bitCount = 0;    //记录位数.
28     do 
29     {
30         ++bitCount;
31         printf("%d ", n % 10);    //逆序输出每一位.
32         n /= 10;
33     } while (n);    //终止条件是"n为0".
34     return bitCount;
35 }
36 
37 //正序输出每一位.
38 void
39 order(int n, int bitCount) {
40     int tmp = 0;    //存储即将减去的级别,如当n为"1234"时,存储"1000";当n为"234"时,存储"100".
41     int h = 0;    //存储最高位的位.
42     while(n) {
43         tmp = (int)pow((double)10, --bitCount);
44         h = n / tmp;
45         printf("%d ", h);
46         n -= h * tmp;
47     }
48 }

 

output:

original:56789
9 8 7 6 5
bits: 5
5 6 7 8 9 请按任意键继续. . .

 

c - 逆序/正序输出每位.

原文:http://www.cnblogs.com/listened/p/4032619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!