- 博客(25)
- 收藏
- 关注
原创 C语言实现队列(链表)
C语言实现队列 原理:通过单链表实现的队列,队列就是一个尾插头删的单链表,先实现一个链表 ,再实现一个队列包括队头指针和队尾指针图头文件#ifndef Queue_h#define Queue_h#include <stdio.h>typedef int QDataType; //数据类型typedef struct ListNode //通...
2018-10-21 21:18:10
4282
1
原创 c语言实现单链表
c语言实现单链表 头文件(声明)#ifndef LinkList_h#define LinkList_htypedef int DataType; //定义节点内数据类型typedef struct Node{ DataType data; struct Node* next;}Node,*pNode, List, *pList;void Ini...
2018-10-12 14:14:19
524
原创 C语言实现顺序表(静态)
静态顺序表头文件#ifndef SeqList_h#define SeqList_htypedef int DataType;#define MAX_SIZE 10 //顺序表的容量,可调整typedef struct SeqList{ DataType _array[MAX_SIZE]; int _size; //已存元...
2018-09-04 09:44:28
236
原创 有规律的二维数组中查找一个数
二维数组中查找一个数 题目 一个二维数组中,每行按照左到右递增,每列按照上到下递增,完成一个函数可以找到数组的一个数。有返回true,无返回false。分析不需要遍历数组,根据规律,从右上角开始,小的在左边,大的在下面。 看代码理解。 代码#include <stdio.h>#include <stdbool.h&...
2018-07-20 15:45:03
273
原创 c语言动态内存开辟实现通讯录系统-链表
通讯录 实现一个通讯录系统含有:添加,删除,查找,展示,退出等功能。&nbsp;思路创建一个person结构体包含 name;phone;age 等信息;还需一个结构体指针因为要以链表的方法(动态内存开辟)来写,所以在结构细中还需要一个结构体指针来存储下一个结构体变量的地址,这样就可以连续不断的找到下一个人的信息struct Person{ char ...
2018-05-28 23:05:18
426
原创 c实现通用冒泡排序
实现通用冒泡排序我们在c语言的学习中都学过冒泡排序,但是我们的冒泡排序写成函数时往往有类型的限制,这就使我们今后的使用变得不够方便,所以想到实现一个通用的冒泡排序函数。 &nbsp;原理分析在库函数中有一个通用的快速排序函数,我们思考他的参数设计,并模仿设计出我们通用的的冒泡排序函数 bubble_sort 我们将他的函数参数拿出来看,在图中下方给出了每个参数的英文解释,我再...
2018-05-20 22:15:33
632
原创 模拟实现memmove函数
模拟实现memmove函数 分析试看这样一道题 int arr[6] = {1,2,3,4,5,6}; 将数组前4个元素复制到后4个元素上,即将数组变为 {1,2,1,2,3,4} 将数组还原为初始在将后四个元素复制到三个元素上,即为 {3,4,3,4,5,6}说到拷贝我们一定会想到上一篇博客中模拟的memcpy函数 但是用memc...
2018-05-12 15:49:21
345
原创 模拟实现memcpy函数
模拟memcpy函数 功能及原理我前几篇博客写的都是和字符串有关的函数,但实际工作中我们不禁想拷贝字符还想拷贝数组,那用字符拷贝就无法实现,这时就需要用到memcpy函数。接收内存中的两个地址,和需要拷贝内容的字节数,进行拷贝。头文件#include <stdio.h>#include <assert.h>库函数的memcpy...
2018-05-11 22:19:53
296
原创 模拟实现strcmp函数
模拟实现strcmp函数 原理接收两个字符串地址比较两个字符串,相同返回0,不同时大于返回正数小于返回负数 头文件#include <stdio.h>#include <assert.h> 代码int my_strcmp(const char *str1, const char *str2){ as...
2018-05-10 00:02:17
214
原创 模拟实现strstr函数
模拟实现strstr函数&nbsp;原理接收两个字符串地址,在第一个字符串中寻找是否出现第二个字符串。代码char *my_strstr(const char* str1, const char* str2 ){ assert(str1 != NULL); assert(str2 != NULL); if(*str2 == '\0') ...
2018-05-09 23:50:40
168
原创 模拟实现strcat函数
模拟实现strcat函数&nbsp;原理接收两个字符数组地址,将第二个(源字符串)的内容拼接到第一个(目标字符串)的后面拷贝过程与strcpy类似,需多一步骤:寻找到目标字符串的 ‘\0’ 位置&nbsp;代码char *my_strcat(char *dest, const char *src ){ assert(dest != NULL); ...
2018-05-09 22:24:21
392
1
原创 模拟实现strcpy函数
模拟实现strcpy&amp;nbsp;原理第一个参数为目标字符数组,第二个参数为源字符串直到源遇到’\0’停止复制返回值为目标字符串地址,便于链式访问需要的头文件#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;assert.h&amp;gt;代码实现char *my_strcpy(char *dest, const char *src
2018-05-09 11:22:27
176
原创 模拟实现strlen函数——3种方法
三种方法模拟实现strlen函数 原理接受一个地址字符数组或字符串地址向后寻找直到出现‘\0’返回值为字符个数即字符串长度,可链式访问需要的头文件#include <stdio.h>#include <assert.h> 计数器法int my_strlen(const char *s) //只...
2018-05-09 11:19:43
268
原创 模拟实现printf函数
模拟实现printf函数 首先需要学会可变参数的使用。不会的可以看上一篇博客思路一般printf函数的使用格式如下printf("%s,%d,%c","hello",12,'f');观察知道,第一个参数是一个字符串,后面是可变参数第一个字符串的内容决定后面可变参数的类型遍历第一个字符串我们遇到%时要对后面的字符判断,是否代表一种类型,然后在后面的可变...
2018-05-05 12:13:21
234
原创 C语言可变参数
可变参数c语言中实现可变参数列表我们c语言中实现一个函数时我们会根据需要为它设计参数,当我们调用函数时必须给他对应的参数,不然就会出错。那我们如果参数个数不能确定,又必须要实现这个函数该怎么办呢?如题: 实现一个函数求一组数(个数不定)的平均数 传参数,第一个参数为数的个数,后面每个为每个数的值 例如:average(3,1,2,6) 输出3。那这就要依靠可...
2018-05-01 15:01:18
240
原创 main函数的参数
main函数的参数在初学C语言时,我们首先学的就是main函数,也就是c语言程序的主函数, 我们的main函数一般有这两种写法int main(){ return 0;}void main(){}我们发现main函数后面的()内并没有参数,但其实main函数是有参数的 main函数完整有三个参数,应该是这样的int main(int argc,...
2018-04-29 01:03:52
824
原创 函数调用过程-函数栈帧
函数栈帧函数是程序中必不可少的一个部分,整个程序的运行几乎都是由一个个函数之间互相调用来完成的,我们的main函数,printf函数,还有编程时我们自己写的函数,它们时我们的程序简介高效。那么一个函数在内存中到底是如何调用的?如何实现函数的种种功能的?深度解析看这样一段代码#include <stdio.h> int Add(int x, int y)...
2018-04-23 16:29:13
309
原创 编程实现英语句子按单词倒叙-C语言
C语言实现英语句子按单词倒叙 题目:有一个字符数组的内容为:”student a am i”,请你将数组的内容改为”i am a student”. 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。分析及解题思路可以看出这句话(字符串)是以单词为单位倒叙,即单词本身内部并不倒叙。所以不可以将整个字符串倒叙。思路:先将整个字符串倒叙(此时...
2018-04-10 00:31:28
3166
原创 c语言编写三子棋游戏
如何用c语言编写三子棋程序目录如何用c语言编写三子棋程序目录构造运行框架(主函数)将各个功能写成函数menu函数game函数创建一个game.c源文件和game.h头文件梳理game函数需要的功能(各函数)init函数display函数PlayerMove函数ComputerMove函数IsWin函数执行结果展示构造运行框架(主...
2018-04-07 15:31:11
352
原创 对一维数组的大小和地址的思考,及对数组使用sizeof和strlen函数的不同输出
开始正题前我们先做个预备~(全部C语言知识) 数组的大小数组的大小主要由数组的类型和数组元素的多少来决定。如一个整型的数组int arr[10] = {0};这个数组共有十个元元素,都为整型,一个整型元素占用4个字节,那这个数组在内存中就占用40个字节。数组的地址为数组首元素的地址即arr[0]的地址sizeof和strlen1.sizeof()是用来计算数组大小的,它一般用法如下int a...
2018-04-04 14:10:48
751
原创 因运算级出现的问题代码思考
一段有意思的问题代码在c语言中()运算级高于 + 发现了一段代码在不同平台编译器运行出现的结果不同,请看如下代码int main(){ int a = 1; int b = (++a) + (++a) + (++a); printf("%d\n", b); //vs6.0-> 10. vs2008-> 12. xcode-> 9. return ...
2018-04-03 17:23:51
141
原创 C语言操作符
操作符分类: 算术操作符 移位操作符 位操作符 赋值操作符 单 操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引 、函数调 和结构成员算术操作符+ - * / %除 %操作符之外,其他的 个操作符可以作 于整数和浮点数。对于/操作符如果两个操作数都为整数,执 整数除法。 只要有浮点数执 的就是浮点数除法。%操作符的两个操作数必须为整数。返回...
2018-03-27 21:03:34
138
原创 笔记,getchar ,平均值,随机值
int main( ){ char ch = 0; while ((ch=getchar( )) !=EOF) { printf("%c",ch); }return 0;}此代码不断接收标准输入的一个字符并输出,EOF(end of file)文件结束字符,win系统输入用ctrl+z,os系统用control+d。int main(){...
2018-03-27 19:14:23
155
原创 18-3-12 练习 素数 乘法表
1.输出100~200之间的素数①#include <stdio.h>int main(int argc, const char * argv[]){ for (int i=100; i<=200; i++) { for (int j=2; j<=i; j++) { if ( i%j==0) ...
2018-03-13 18:10:11
262
原创 The start
如标题这是一个开始。我——刘芮辰,目前就读西安工业大学,计算机科学与技术专业这是开始写博客的第一天也是在大学生活中的一个新的起点,现在已是大一的第二学期了,回首第一学期虽然忙碌,但是并没有取得太多的进步,所以明确目标开始努力。上学期主要通过视频课的方式学习C语言,基本语法大概了解,会写一些简单的程序,但是并不扎实,一个寒假过后又忘了很多,以后以博客记录计算机学习的路程。在编程方面的目标,还没有明确...
2018-03-13 17:57:04
255
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人