C语言编程:字符串排序与常胜游戏小程序

版权申诉
0 下载量 133 浏览量 更新于2024-07-01 收藏 22KB PDF 举报
"C语言简单小程序简单算法.pdf 包含两个C语言程序示例,一个是字符串排序,另一个是21根常胜游戏的实现。这些程序适用于初学者学习和考试复习。" 在C语言中,编写小程序是学习编程的基础。这里有两个小程序,都是在Turbo C 2.0编译器环境下编译并通过的。 第一个程序是字符串排序,它使用了经典的冒泡排序算法。冒泡排序是一种简单的排序方法,通过比较相邻元素并交换位置来逐步将较大的元素移动到序列末尾。在这个程序中: ```c void paixu(char *p[5]) { int i, j; char *q; for (i = 0; i < 4; i++) // 遍历数组4次,因为最后一次排序已经保证了最大值在正确位置 for (j = 0; j < 4 - i; j++) // 比较并交换相邻的字符串 if (strcmp(p[j], p[j + 1]) > 0) { // 使用strcmp函数比较字符串大小 q = p[j]; // 保存当前元素的指针 p[j] = p[j + 1]; // 将较大的字符串移到前面 p[j + 1] = q; // 将较小的字符串移到后面 } } ``` 主函数`main()`部分,首先分配内存存储5个字符串,并通过`scanf`读取用户输入,然后调用`paixu`进行排序,最后打印排序后的结果。 第二个程序是一个简单的游戏模拟,称为21根常胜游戏。游戏规则是,两个人轮流从一叠总共有21根的棍子中取走1至4根,取走最后一根的人输。程序使用递归实现,当只剩1根棍子时,由当前玩家自动输掉游戏。核心部分在于根据剩余棍子数判断玩家可能的取法,然后模拟电脑的取法,直到游戏结束。 ```c stick(int left) { int take; if (left == 1) { // 游戏结束,玩家输 } else { // 获取玩家的取法 // 模拟电脑取法 // 继续游戏 } } ``` 这个程序可以帮助理解递归以及基本的游戏逻辑,是学习C语言控制流程和函数应用的好例子。 这两个小程序展示了C语言的基本语法、输入输出、内存管理(动态内存分配)以及基本算法的应用,适合初学者作为练习和备考使用。通过理解和运行这些程序,可以加深对C语言的理解,并提升编程能力。