可可熊的窝

Category Archives: C

几种简单的排序实现

IN:C, 编程相关       Comments:4

选择排序:
每次找出最小的放在最前面;

插入排序:
每次循环把后面第一个元素插入到前面适当位置(玩扑克牌的插法);

冒泡排序:
比较相邻元素,大的放在右边;


[cocobear@cocobear Temp]$ ./a.out
排序前:83 86 77 15 93 35 86 92 49 21
请选择排序方式:
(1)选择排序
(2)插入排序
(3)冒泡排序
:1
选择排序:
第1次排序结果:15 86 77 83 93 35 86 92 49 21
第2次排序结果:15 21 77 83 93 35 86 92 49 86
第3次排序结果:15 21 35 83 93 77 86 92 49 86
第4次排序结果:15 21 35 49 93 77 86 92 83 86
第5次排序结果:15 21 35 49 77 93 86 92 83 86
第6次排序结果:15 21 35 49 77 83 86 92 93 86
第7次排序结果:15 21 35 49 77 83 86 92 93 86
第8次排序结果:15 21 35 49 77 83 86 86 93 92
第9次排序结果:15 21 35 49 77 83 86 86 92 93
[cocobear@cocobear Temp]$ ./a.out
排序前:83 86 77 15 93 35 86 92 49 21
请选择排序方式:
(1)选择排序
(2)插入排序
(3)冒泡排序
:2
插入排序:
第1次排序结果:83 86 77 15 93 35 86 92 49 21
第2次排序结果:77 83 86 15 93 35 86 92 49 21
第3次排序结果:15 77 83 86 93 35 86 92 49 21
第4次排序结果:15 77 83 86 93 35 86 92 49 21
第5次排序结果:15 35 77 83 86 93 86 92 49 21
第6次排序结果:15 35 77 83 86 86 93 92 49 21
第7次排序结果:15 35 77 83 86 86 92 93 49 21
第8次排序结果:15 35 49 77 83 86 86 92 93 21
第9次排序结果:15 21 35 49 77 83 86 86 92 93
[cocobear@cocobear Temp]$ ./a.out
排序前:83 86 77 15 93 35 86 92 49 21
请选择排序方式:
(1)选择排序
(2)插入排序
(3)冒泡排序
:3
冒泡排序:
第1次排序结果:83 77 15 86 35 86 92 49 21 93
第2次排序结果:77 15 83 35 86 86 49 21 92 93
第3次排序结果:15 77 35 83 86 49 21 86 92 93
第4次排序结果:15 35 77 83 49 21 86 86 92 93
第5次排序结果:15 35 77 49 21 83 86 86 92 93
第6次排序结果:15 35 49 21 77 83 86 86 92 93
第7次排序结果:15 35 21 49 77 83 86 86 92 93
第8次排序结果:15 21 35 49 77 83 86 86 92 93
第9次排序结果:15 21 35 49 77 83 86 86 92 93

查看源码
下载源码

11-05
2007

编译了个Win下的DouSnake

IN:C, SDL, 编程相关       Comments:3

SDL是跨平台的开发库,因此移植到WIN下只需要重新编译一次就可以了,源代码我基本没做修改,只是把SDL的包含方式改为了:

#include <SDL/SDL.h>

因为我不知道在WIN下如何使用-I/usr/include/SDL

使用的是Dev-C++ 4.9.2.2编译的,还做了个图标,呵呵,练练手,为了SuperMario的WIN版,没办法啊,有人期待WIN的啊!

源码下载
游戏下载

11-02
2007

DouSnake with SDL

IN:C, SDL, 编程相关       Comments:7

根据小林子同学的建议,写了个加强版的贪吃蛇:

同时有两条蛇存在,分别有不同的方向键操作,两个蛇不可以碰撞,也不可以吃对方的食物。两条蛇的速度会随着它们所吃的食物数量的增加而加快。
调用了上次写的draw.c。

存在的问题:
新生成的食物可能会在蛇的身上

DouSnake下载

10-21
2007

SDL绘图库

IN:C, SDL, 编程相关       Comments:4

SDL本身并没有提供绘图的函数,不过已经有第三方的实现,比如SDL_draw。我看了它的一些代码,感觉很乱,里面宏的应用应该说是到了“滥用”的地步,(也许作者为了显示自己高超的架御宏的能力吧)。

只好自己去实现这些基本的绘图函数,目前已经可以实现点,线段,矩形,圆,椭圆的函数。这些基本上已经够用了,不过里面有个斜线的实现使用了别人的代码,没看懂他的实现方法,有时间再想想吧。

给个截图:
screenshot.png

BTW:SDL还是算比较底层的吧,这些很基本的东西也得自己写函数实现:-)

代码可以在这里下载。

10-20
2007

一个很巧妙的求回文数的方法

IN:C, 编程相关       Comments:4


unsigned char Symmetry (long n)
{
long temp = 0;
long i = 0;

i = n;
while(i) {
temp = temp*10 + i%10;
i/=10;
}
return (temp == n);
}

可能很多人都看过的,不过俺第一次见,如果让俺自己写的话肯定写出来很笨的。

10-15
2007
Page 3 of 512345
loading...