#include <stdio.h>
#include <math.h> /*
判断一个正整数的位数,并按正序,逆序输出他们的位.
*/ int
invert(int); void
order(int, int); int
main(void) {
int n = ;
printf("original:%d\n", n);
int bitCont = invert(n);
printf("\nbits: %d\n", bitCont);
order(n, bitCont);
return ;
} //逆序输出每一位并记录位数.
int
invert(int n) {
int bitCount = ; //记录位数.
do
{
++bitCount;
printf("%d ", n % ); //逆序输出每一位.
n /= ;
} while (n); //终止条件是"n为0".
return bitCount;
} //正序输出每一位.
void
order(int n, int bitCount) {
int tmp = ; //存储即将减去的级别,如当n为"1234"时,存储"1000";当n为"234"时,存储"100".
int h = ; //存储最高位的位.
while(n) {
tmp = (int)pow((double), --bitCount);
h = n / tmp;
printf("%d ", h);
n -= h * tmp;
}
}

output:

original:56789
9 8 7 6 5
bits: 5
5 6 7 8 9 请按任意键继续. . .
 //二,使用(求余数方法)
void
count_vMod(int input) {
//分别表示'个位,十位,百位,千位,万位'上的数字.
int one, ten, hundred, thousand, ten_thousand; ten_thousand = input / ; //除1万.
thousand = input % / ; //取余1万后除1千.
hundred = input % / ; //取余1千后除1百.
ten = input % / ; //取余1百后除1十.
one = input % ; if(ten_thousand)
printf("共有5位数,%d %d %d %d %d\n", one, ten, hundred, thousand, ten_thousand);
else if(!ten_thousand && thousand)
printf("共有4位数,%d %d %d %d\n", one, ten, hundred, thousand);
else if(!ten_thousand && !thousand && hundred)
printf("共有3位数,%d %d %d\n", one, ten, hundred);
else if(!ten_thousand && !thousand && !hundred && ten)
printf("共有2位数,%d %d\n", one, ten);
else if(!ten_thousand && !thousand && !hundred && !ten && one)
printf("共有1位数,%d\n", one);
}

虽然第二中方法(求余数)在求某位数的时候,有用,但是感觉比较笨拙(主要是对这个题目,特别是if判断时).

c - 逆序/正序输出每位.的更多相关文章

  1. C#数组的排序(正序逆序)

    C#数组的排序(正序逆序) 这种排序 超级简单的 ! using System; using System.Collections.Generic; using System.Linq; using ...

  2. oracle 正序 逆序 排序查询

    正序:从小到大 order by t.id asc 逆序:从大到小 order by t.id desc

  3. C语言-正序输出一个一个多位数

    //正序输出一个多位数,所有的数字中间用空格分隔 int main() { ;//是可变化的 ; int d; int t =x; //先计算x的位数 ){ t /= ; mask *=; } pri ...

  4. Comparable 接口学习:对对象List进行比较和排序(正序和逆序)

    Comparable 接口只有一个 int compareTo(T o) 方法 1.int compareTo(T o) 方法 方法说明: 比较此对象和规定的对象,如果此对象大于,等于,小于规定对象, ...

  5. Python九九乘法表(正序和逆序)

    正序: for i in range(1,10): for j in range(1,i+1): print(str(i)+"*"+str(j)+"="+str ...

  6. Java之选择排序(正序、逆序)

    public class SelectSort { public static void main(String[] args) { /** * @author JadeXu * @// TODO: ...

  7. (C++)读取一个输入的int型十进制数字的位数,并正序输出每个位上的值(不同数位的值用1个空格字符间隔)

    1 /* 2 程序功能:读取一个输入的int型十进制数字的位数,并正序输出每个位上的值(不同数位的值用1个空格字符间隔). 3 例如:当输入985这个数字时,显示如下信息: 4 985是一个3位数字! ...

  8. compare正序与逆序

    //list:在数据查询出来的Record集合 //juli:是需要比较的字段   //实现一个Comparator接口 //后面减去前面是正序   前面减去后面是倒叙 //我这里做的一个距离排序 R ...

  9. Java:集合,对列表(List)中的自定义对象按属性(字段)排序(正序、倒序)的方法

    1. 要求 对列表(List)中的自定义对象,要求能够按照对象的属性(字段)进行排序(正序.倒序). 如:用户对象(Member)有用户名(username).级别(level).出生日期(birth ...

随机推荐

  1. MySQL是否在扫描额外的记录

    在确定查询只是返回需要的数据之后,接下来应该看看查询为了返回结果是否扫描了过多的数据.对于MySQL,最简单的衡量查询开销的三个指标如下: 1响应时间,2扫描行数,3返回行数 没有那个指明能够完美的衡 ...

  2. redis php

    redis php 学习1.连接$redis = new redis();$result = $redis->connect('127.0.0.1',6379); 2.set$redis = n ...

  3. DEDE提高生成HTmL的速度

    1.找到include/inc/inc_fun_SpGetArcList.php打开之.   2.查找以下代码:   for($i=0;$i<$ridnum;$i++){     if($tps ...

  4. Nginx源码研究二:NGINX的事件处理概论

    NGINX作为服务端的应用程序,在客户端发出数据后,服务端在做着这样一些处理,数据先会经过网卡,网卡会和操作系统做交互,经过操作系统的协议栈处理,再和不同的应用程序交互. 在这里面涉及两个概念,一个是 ...

  5. string string.h=cstring=str

    <string.h> <string.h>是C版本的头文件,包含比如strcpy.strcat之类的字符串处理函数. <cstring> 在C++标准化(1998年 ...

  6. 配置一个servlet程序

    <!-- 配置一个servlet程序 --> <servlet> <!-- servlet的内部名称 ,可以自定义--> <servlet-name>H ...

  7. Android Studio下运行UiAutomator

    之前学习UiAutomator均是在eclipse下,因学习Android开发接触AS越来越频繁,于是想知道AS下如何建立UiAutomator项目.网上的资料多很凌乱,查了很多资料,实践后发现,只要 ...

  8. Swift—使用try?和try!区别-备

    在使用try进行错误处理的时候,经常会看到try后面跟有问号(?)或感叹号(!),他们有什么区别呢? 1.使用try?  try?会将错误转换为可选值,当调用try?+函数或方法语句时候,如果函数或方 ...

  9. Coursera获取中文字幕(如果有的话)

    字幕的格式是  https://class.coursera.org/${课程代号}/lecture/subtitles?q=${视频编号}_zh-cn 例如 https://class.course ...

  10. linux系统ecshop拿shell方法

    Title:linux系统ecshop拿shell方法  --2011-06-08 13:23 最近弄一个站,对ECSHOP拿shell不了解,导致走了很多的弯路. nginx/0.8.54的服务器, ...