#### 问题描述 编写函数expand(s1, s2),将字符串s1中类似于a-z一类的速记符号在字符串s2中扩展为等价的完整列表abc...xyz。该函数可以处理大小写字母和数字,并可以处理a-b-c、a-z0-9与-a-z等类似的情况。作为前导和尾随的-字符原样打印。 ------ #### 问题分解 - 主函数main - - 核心函数 expa...
#### 问题描述 在求反码时,表达式 x &= (x - 1) 用于把x最右边的值为1的位删除掉。请解释一下这样做的道理。用这一方法重写bitcount函数 ,使之执行得更快一点。 ------ #### 问题分解 - 主函数main - 核心函数 bitcount(x)。我们先来看看书中例子 bitcount的算法实现: ```c ...
#### 问题描述 编写一个函数rightrot(x, n),该函数返回将x循环右移n位所得到的值。 这个问题的理解是: 将x进行右移n位,每次移动都将右侧的最后一位移到左侧第一位。 ------ #### 问题分解 - 主函数main - 核心函数 rightrot(x, n)。 这道题需要我们留心观察右移的规律,首先常规的右移很好表示,因此难点...
###问题描述 编写一个函数setbits(x, p ,n, y),该函数返回对x执行下列操作后的结果值: 将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变。 ###问题分解 1. 主函数main 2. 核心函数 setbits(x, p ,n, y), 此函数是算法核心,要做的事情就是通过一系列的位运算达到目的。大概分为以下几个步...
#### 问题描述 编写一个函数 invert(x, p, n),该函数返回对 x 执行下列操作后的结果值:将 x 中从第 p 位开始的 n 个(二进制)位求反(即,1 变成 0,0 变成 1),x 的其余各位保持不变。 ------ #### 问题分解 - 主函数main - 工具函数 setbits(x,p,n,y), 算法解析可以看上一篇文章 ...
###问题描述 编写函数squeeze(s1, s2), 把字符串s1中与字符串s2中字符匹配的所有字符都删除。 ###问题拆分 - 主函数 main - 接收用户输入字符串函数 get_line (注意不能按照书本上的getline,因为此函数已在stdio.h 中定义了) - 从s1中移除s2中包含的字符 函数 squeeze ###代码实现 ```c ...