C语言
文章平均质量分 66
havedream_one
这个作者很懒,什么都没留下…
展开
-
C语言:位域
有了位域,可以方便的操纵字节,这个是一个非常好的功能!参照面试题:象棋问题有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个转载 2014-11-27 08:45:35 · 1061 阅读 · 0 评论 -
中国象棋将帅问题
来源:编程之美-微软技术面试心得在中国象棋中,将帅只能在两个九宫格里,且将帅不能见面,即不能同时出现在一列里,问题:请输出将帅所有可能的位置,只能用一个字节实现分析:这个问题的难点在于变量只能使用一个字节,很显然,大致的解法就是两个for循环,然后判断将帅是否在同一列,不在则输出。设:A=‘将’,B=‘帅’,九宫格用1,2,3,……,9来表示。解法一:A或B可能转载 2014-11-27 08:48:15 · 1178 阅读 · 0 评论 -
编程之美--求数组的子数组的最大乘积
给定一个长度为N的整数数组,只允许用乘法不允许用除法,计算N-1个数组合的乘积最大的一组,并写出算法的时间复杂度。 关键点:整数数组,不使用除法方法一: 最简单的计算就是把所有N-1个数的组合全找出来,共有 N 种情况,所以算法的复杂度为Ο(N2)。方法二:对于数组A[N],假设这样思考假设去除第i个元素的乘积可以表示为A[0]*A[1]*…A转载 2014-12-23 09:02:02 · 1206 阅读 · 0 评论 -
将无限循环小数转换成分数形式
节选自《编程之美》设一个循环小说X=0.a1a2a3...an(b1b2...bm),括号中的是循环节,例0.333(333)将X分成两部分,X=(a1a2..an+0.(b1b2..bm))/10n设Y=0.(b1b2...bm)则有Y=(b1b2...bm+0.(b1b2...bm))*10m那么就有Y=b1b2...bm/(10m-1)综上可知X=(a1a2...转载 2014-12-11 09:05:35 · 5802 阅读 · 0 评论 -
二叉树里的公式
数据结构中二叉树的节点和形态关系原创 2015-04-09 10:32:21 · 7020 阅读 · 0 评论 -
printf函数中%p代表什么数据类型
今天在问答频道看到网友问%p输出的是什么,查了查在这里做个记录#include void main(){ int arr[5] = {10,20,30,40,50}; int i = 0; printf("数据:\n"); printf("十进制表示的数据:\n"); for(i = 0 ; i < 5 ; i++){ printf("%d\t",arr[i]);原创 2015-05-09 19:07:52 · 7887 阅读 · 0 评论 -
关于一个数组越界之后的死循环
#includeint main(void){ int i; int a[5]; for (i = 0; i <= 5; ++i) { a[i] = -i; printf("a[%d] = %d\n", i, a[i]); } return 0;}分析上述代码,执行结果是什么?能编译过去吗?有结果吗?编译运行之后,发现这个程序是可以运行的。为了分析这个程序,修正原创 2015-05-09 22:52:48 · 1859 阅读 · 0 评论 -
C++函数参数中引用和指针区别
★ 相同点:都是地址的概念; 指针指向一块内存,它的内容是所指内存的地址; 引用是某块内存的别名。★ 区别:指针是一个实体,而引用仅是个别名;引用使用时无需解引用(*),指针需要解引用;引用只能在定义时被初始化一次,之后不可变;指针可变; 引用“从一而终” ^_^引用没有 const,指针有 const,const 的指针不可变;引用不能为空,指针可以为空;“sizeof 引用转载 2016-05-13 13:52:26 · 683 阅读 · 0 评论