首页 > 代码库 > c - 逆序/正序输出每位.
c - 逆序/正序输出每位.
1 #include <stdio.h> 2 #include <math.h> 3 4 /* 5 判断一个正整数的位数,并按正序,逆序输出他们的位. 6 */ 7 8 int 9 invert(int);10 11 void12 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 void39 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:567899 8 7 6 5bits: 55 6 7 8 9 请按任意键继续. . .
c - 逆序/正序输出每位.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。