发布时间:2013-01-09 12:10:00
排序数组,使奇数在左边,偶数在右边,同时需保持元素相对顺序稳定。 正确解法使用冒泡即可。 代码中额外提供了基于快排的方法。(麻烦且没有必要,仅作思考和练手使用) 排序的本质是依据不同的权重计算方法,按权重进行排序。这里通过对数字奇偶性和它的的下标,计算了每个数字的权重,然后根据权重进行升序排列。 权重计算规则:奇数的权重小于偶数的权重,下标小的权重小于下标大的。 这种思想可用于各种排序的变体。 点击(此处)折叠或打开 #include <stdio.h> #include <stdlib.h> #define SWAP(a,b) (......【阅读全文】
发布时间:2013-01-04 13:21:59
最近在网上发现一个有趣的现象,一些公司的技术面试总是光顾一些常用的ANSI C函数,我去年也有幸碰到了实现一个简单scanf的命题。这类题,表面上看实际上都不难,但是想把它考虑全面,写的精炼且高效却很难,没有一定内功的人是达不到这个水准的,这也是频频被用来做测试人才尺子的原因。 其实很早就知道有些高手为了练内功在读C run-time代码,于是也深入了一段时间,同时我将视野放的更广一些,涉及到了更多的经典代码,对端正我的写程序态度起了很大的作用。趁这段时间辟谷,希望用这个系列把一些点滴记录下来,借着同广大网友交流的绝好时机,再重新审视一番我的思路。 先要感谢第一位给我的“写......【阅读全文】
发布时间:2013-01-04 13:04:35
一道笔试题,将字符串逆序。#include <stdio.h> #include <assert.h> #include <malloc.h> #include <string.h> /* ** 函数名:str_reverse ** 输入参数:char *str:原字符串 ** 返回值:char *ret_char:逆序后的字符串 ** 功能:将字符串逆序,如将"abcdef"转换成"fedcba" */ char *str_reverse(char* str) { int i=strlen(str); ......【阅读全文】
发布时间:2012-12-30 13:18:28
不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,由于汇编语言开发的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,C语言--一种"高级的低级"语言,则成为嵌入式系统开发的最佳选择。 背景篇 本文的讨论主要围绕以通用处理器为中心的协议处理模块进行,因为它更多地牵涉到具体的C语言编程技巧。本文讲述的28个主题可分为两类,一类是编程技巧,有很强的适用性;一类则介绍嵌入式系统编程的一般常识,具有一定的理论意义。 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其......【阅读全文】