码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-10-18 11:09:12      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   sp   div   on   log   bs   

 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 - 逆序/正序输出每位.

标签:style   blog   color   io   sp   div   on   log   bs   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!