C语言
meng_lemon
时光未老,努力拼搏
展开
-
猜数字游戏
猜数字游戏简介: 猜数字游戏是电脑随机生成一个数,通过猜测说出一个数,程序会说“猜大了”或者 “猜小了”,来提示你调整你的数字,直至猜对为止。程序思路: 一般我们玩游戏时都会有一个游戏界面,然后通过选择才开始你的游戏,所以我们的第一步是要做一个游戏界面的菜单,然后在开始玩游戏。 1、打印菜单 2、游戏 (1)电脑生成随机数 (2)猜...原创 2018-03-27 21:51:48 · 256 阅读 · 0 评论 -
选择排序
基本思想 每一趟(第i趟,i = 0,1,2,…,n-2)在后面n-i个待排序的数据元素集合中选取关键码最小的数据元素,作为有序元素序列的第i个元素。待到第n-2趟做完,待排序元素结合中只剩下一个元素,排序结束分类直接选择排序堆排序直接选择排序 思想概述1.在元素集合arr[i]~arr[n-1] 中选择关键码最大(最小)的数据元素2.若它不是这组元素中的最后一个(第一个)元...原创 2018-09-24 17:50:17 · 97 阅读 · 0 评论 -
单链表的基本操作
链表:一种链式存储的线性表,用一组地址任意的存储单元存放线性表的数据元素,称为存储单元为一个节点。 单链表的存储结构typedef int DataType;typedef struct ListNode{ DataType _data; //当前节点中所保存的元素 struct ListNode* _pNext; //指向...原创 2018-08-25 20:10:36 · 27950 阅读 · 2 评论 -
静态顺序表的基本操作
学习数据结构思维框架:顺序表用一段地址连续的存储单元一次存储单元依次存储数据元素的线性结构。 地址连续的空间,一般情况下采用数组,但数组有静态数组和动态数组。所以,顺序表一般也分为:静态顺序表和动态顺序表。 今天我们来看一下静态顺序表。静态顺序表 静态顺序表即最大容量是确定的,存储数量有限。静态顺序表的结构如下:#define MAX_SIZE ...原创 2018-08-25 18:00:59 · 298 阅读 · 0 评论 -
二叉树前序、中序、后序(递归 / 非递归)遍历
前语 二叉树的遍历是指按一定次序访问二叉树中的每一个结点,且每个节点仅被访问一次。 前序遍历 若二叉树非空,则进行以下次序的遍历: 根节点—>根节点的左子树—>根节点的右子树 若要遍历左子树和右子树,仍然需要按照以上次序进行,所以前序遍历也是一个递归定义。(1) 递归的前序遍历//前序递归遍历void PreOrder(BinTreeNode...原创 2018-08-29 20:45:06 · 2341 阅读 · 0 评论 -
合并两个有序的单链表,合并后依然有序
分析过程: 首先我要合并有序的链表,合并后依然有序。我就要有两个指针,分别指向两个链表,观察所给的两个链表原创 2018-08-26 16:20:41 · 12172 阅读 · 1 评论 -
从尾到头打印单链表
题目描述 试编写一个算法将单链表逆置,要求不能增加新节点。分析步骤 单链表的逆置,分析来说就是,改变链表的指向。指向后面的,反过来指向前一个。最后改变指向链表指针的值就可以了. 将当前节点指向前一个节点,前一个节点如何去找?后面的链表应该如何标记。–>这就让我们有了思考:我们 可以用三个指针来标记当前节点、前一个节点和后面的链表,一个一个的来进行逆置,就可以啦。 代...原创 2018-08-26 11:52:21 · 412 阅读 · 0 评论 -
指针和数组的定义与声明
导语在这里我们做种强调的是在两个文件中,定义为数组声明为指针和定义为指声明为数组的这辆中情况。那么我们就需要两个源文件test.c和main.c。定义为数组,声明为指针test.cchar arr[] = "abcdef";main.c#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#incl...原创 2018-06-10 17:38:55 · 5353 阅读 · 1 评论 -
指针函数 AND 函数指针 AND 函数指针数组 AND 指向函数指针数组的指针
指针函数形如“指针数组”,“指针函数”是一个“函数”,函数的返回类型是指针。定义 类型标识符 *函数名(参数表)char *reverse(char *left, char *right);reverse是一个函数,它的返回类型是一个字符型的指针,函数的返回值必须在主调用函数中用一个相同类型的的指针变量来接收。char *my_strcpy(char *...原创 2018-06-10 11:22:52 · 202 阅读 · 0 评论 -
结构体 AND 枚举 AND 联合
结构体导语 结构是一些值的集合,这些值称为成员变量。结构体的每个成员可以是不同类型的变量。结构体的定义结构的声明 在结构体的声明中,必须列出他所包含的所有成员,这个列表包含它所有成员的类型和名字。struct tag //结构体标签(一般不为空){ member - list; //成员变量:类型+变量名(不能为空)}variable-lis...原创 2018-06-17 14:25:57 · 152 阅读 · 0 评论 -
将字符数组:“student a am i”,改为:“i am a student”
问题:有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。 思路分析:首先,大家会想到我把每个先将整个数组前后交换,这样的思考方式就会出现“i ma a tneduts”,这样的话就会出现单词的反转了,我们再让每个单词翻转过来就行了。 这...原创 2018-06-09 10:16:08 · 302 阅读 · 0 评论 -
指针数组 AND 数组指针
指针数组 题外话:首先大家听到指针数组会考虑到“指针数组”是什么?通过语文的学习可以知道“指针数组”首先,它是一个“数组”,其次,“指针”指针修饰了这个“数组”,所以,大家就可以知道“指针数组”是一个数组,它里面的元素都是指针类型的。 定义: char *p[10] = { "hello", "world", "you", "love", "me" };看到这里大家就不禁想到,这...原创 2018-06-04 15:33:08 · 97 阅读 · 0 评论 -
数组总结(一)
目录0.数组简介1.一维数组 1.1一维数组的创建和初始化 1.2一维数组的内存存储 1.3一维数组的使用2.二维数组 2.1二维数组的创建和初始化 2.2二维数组的内存存储 2.3二维数组的使用——————————————————————分隔符—————————————————————0.数组简介 数组是具有相同类型、有穷的、连续存储元素的集合。 ...原创 2018-05-13 21:25:36 · 574 阅读 · 0 评论 -
写一个宏将一个数的奇数位和偶数位交换
题外话:大家一开始拿到这个题都会想到是将十进制数的奇偶数位进行交换,这边就需要大家多多思考一下了,揣摩一下出题者的想法,就会联想到我们需要将二进制数的奇数位和偶数位进行交换正文: 首先大家拿到这个题,要对宏函数有一个整体的认识,然后思考如何使用宏函数实现我们的功能呢? 例:如果给你一个数 num = 5,其二进制位为(0101),交换后会变成(1010) 这样按照题设...原创 2018-04-15 10:23:03 · 219 阅读 · 1 评论 -
位运算操作符
位运算操作符所有的位运算操作符都是按“二进制位补码”进行运算。补码(有符号位):正数的原码、反码、补码都相同负数的补码=原码取反加11、按位与(&)运算规则:0 & 0 = 0 ;0 & 1 = 0;1 & 0 = 0;1 & 1 = 1 口诀:有“0”为“0”,全“1”为“1”举例: 3 & 5 =1 00000000 00...原创 2018-04-01 16:24:06 · 218 阅读 · 0 评论 -
C语言中的操作符
C语言操作符一、算术操作符 {+ , - , * ,/ , %}(1)%操作符只能对整数取模,得出的结果是余数。(2)/ 操作符,如果两个数都为整数则执行整数除法,只要有浮点数就执行浮点数除法。 例:5/ 2 = 2 ; 5.0 / 2 = 2.5(3)除%操作符以外,其它操作符都能作用于整数和浮点数。二、移位操作符 {<< ,>>} 其都为二进制...原创 2018-03-25 20:45:21 · 222 阅读 · 0 评论 -
插入排序
基本思想 将数据集合分成两部分,一部分为有序区,一部分为无序区。每次从无需去重取出一个数据,按其关键字大小将其插入到有序区的适当位置,知道将全部数据都插入到有序区中为止。分类直接插入排序折半插入排序希尔排序 在这里我们着重看一下直接插入排序和希尔排序。折半插入排序和直接插入排序的思想是相同的,仅仅少了关键字之间的比较次数,数据的移动的次数是不变的。直接插入排序 思想概述 当...原创 2018-09-22 20:47:28 · 134 阅读 · 0 评论