自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 快速/希尔/归并/选择/插入/堆/冒泡七大排序详解

1.直接选择排序思考非常好理解,但是效率不是很好。实际中很少使用2.时间复杂度:O(N^2)3.空间复杂度:O(1)4.稳定性:不稳定。

2024-07-04 17:08:47 741

原创 二叉树的实现(初阶数据结构)

一棵二叉树是结点的一个有限集合,该集合:1.或者为空2.由一个根结点加上两棵别称为左子树和右子树的二叉树组成从上图可以看出:1.二叉树不存在度大于2的结点2.二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树。

2024-06-08 16:30:56 1378 1

原创 栈和队列详解

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。栈中的数据元素遵守后进先出LIFO(Last In First Out)压栈:栈的插入操作叫做进栈/压栈/入栈,出栈:栈的删除操作叫做出栈,

2024-05-19 20:51:45 361

原创 链表面试题及其解析

实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。1->2->3->4->5 和k= 24给定的k保证是有效的。

2024-05-03 15:11:13 1015

原创 贪吃蛇项目实现

实现贪吃蛇会使用到的一些Win32 API知识。

2024-04-24 22:29:00 942

原创 编译与链接

在ANSIC的任何一种实现中,存在两个不同的环境。第一种是翻译环境,在这个环境中源代码被转换为可执行的机器指令(二进制指令)。第二种是执行环境,它用于实际执行代码。

2024-04-05 13:20:42 635

原创 文件操作的详序

上面说的适用于所有输入流一般是指适用于标准输入流和其他输入流(如文件输入流);所有输出流一般是指适用于标准输出流和其他输出流。

2024-04-02 20:21:45 968

原创 结构体自定义类型

1.位段的成员是int,unsigned int或signed int,在C99中位段成员的类型也可以选择其他类型。2.位段的成员名后边有一个冒号和一个数字。int _b : 5;

2024-03-24 14:11:20 861

原创 数据在内存中的存储

其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为⼤端字节序存储和⼩端字节序存储,下⾯是具体的概念:是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处。上述概念需要记住,⽅便分辨⼤⼩端。

2024-03-21 17:09:23 951

原创 C语言内存函数

• 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。• 这个函数在遇到 '\0' 的时候并不会停下来。• 如果source和destination有任何的重叠,复制的结果都是未定义的。对于重叠的内存,交给memmove来处理。

2024-03-18 13:14:12 565

原创 字符函数以及字符串函数

• 字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前⾯出现的字符个数(不包含 '\0' )。• 参数指向的字符串必须要以 '\0' 结束。• 注意函数的返回值为size_t,是⽆符号的( 易错 )• strlen的使⽤需要包含头⽂件• 学会strlen函数的模拟实现strlen的模拟实现。

2024-03-16 21:36:13 842

原创 深入理解指针(3)

在指针的类型中我们知道有一种指针类型为字符指针char*;代码const char* pstr = “hello bit.”;特别容易错把字符串hello bit放到字符指针pstr里了,但是本质是把字符串hello bit.首字符的地址放到了pstr中。上面代码的意思是把一个常量字符串的首字符h的地址存放到指针变量pstr中。

2024-03-10 11:20:40 1139

原创 深入理解指针(2)

这里我们使用&arr[0]的方式拿到了数组第一个元素的地址,但是其实数组名本来就是地址,而且是数组首元素的地址。输出结果:我们发现数组名和数组首元素的地址打印出的结果一模一样,数组名就是数组首元素(第一个元素)的地址。如果数组名是数组首元素的地址,那下面的代码怎么理解呢?输出的结果是:40,如果arr是数组⾸元素的地址,那输出应该的应该是4/8才对。

2024-03-09 22:49:08 1045

原创 深入理解指针(1)

在CPU处理数据的时候,需要的数据是在内存中读取,处理后的数据也会放回内存中,把内存划分为一个个的内存单元,每个内存单元的大小取1个字节,每个内存单元都有一个编号,有了这个内存单元的编号,CPU就可以快速找到一个内存空间,我们把内存单元的编号称为地址所以可以理解为:内存单元的编号==地址==指针。

2024-03-09 17:02:15 871

原创 写一段代码使用qsort来排序数据同时模仿qsort来实现一个冒泡排序的函数,这个函数可以排列任何类型的数据

int(*compar)(const void*,const void*))//函数指针,指向的就是两个元素的比较函数。size_t num,//是base指向的待排序数组的元素个数。size_t size,//base指向的待排序数组元素的大小。void qsort(void* base,//指针,指向的是待排序的数组的第一个元素。qsort -- 用来排序的库函数,直接可以用来排序数据,底层使用的是。选择排序,插入排序,冒泡排序,快速排序,希尔排序....使用qsort这个库函数排序结构体的数据。

2024-03-08 18:23:05 416 1

原创 简单计算器以及用函数指针实现的计算器

注意:运用函数指针实现的计算器并没有直接调用函数,而是主调calc函数,calc函数再回调Add,Sub,Mul,Div函数。2.用函数指针实现计算器。

2024-02-24 11:01:06 387

原创 使用c语言来找单身狗的两种方法

例如找最低位,那么这一位是1的有1 3 1,是0的有2 4 2,由于是利用异或结果为1的某一位分的组,所以两个待查询数字一定分别在两组中。总结:1. 找出一个只出现过一次的数字的问题处理方法就是找一个数字把里面所有的数字都异或一遍,利用异或两次等于没异或的特点来处理。在一个整型数组中,只有一个数字出现一次,其他数组都是成对出现的,请找出那个只出现一次的数字。数组中有:1 2 3 4 5 1 2 3 4,只有5出现一次,其他数字都出现2次,找出5。有数组的元素是:1,2,3,4,5,1,2,3,4,6。

2024-02-09 09:52:34 396 1

原创 字符串左旋的三种方法

从这两种代码可以体会到strcpy和strcat以及strncat的用法;例如:ABCD左旋一个字符得到BCDA,ABCD左旋两个字符得到CDAB。strcat():字符串拼接;----》strncat则表示拼接n个字符。注意将方法里面的字符串换成ABCD就可以达到题干的解。使用库函数strcpy和strcat。strcpy():字符串拷贝;第三种方法:三段逆置。

2024-02-04 14:02:57 410 1

原创 用C语言在屏幕上打印菱形:

1.上半部分可看成一个高为7,底为13的三角形。1.上面的三角形和下面的三角形大小不一样的。别忘记换行,在每一次i改变的时候就要换行。2.每次打印完一行要记得换行。

2024-01-22 14:22:40 439

原创 三角形判断

针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。注意:&&和||的用法务必要掌握。

2024-01-05 12:07:06 394 2

原创 从键盘输入a, b, c的值,编程计算并输出一元二次方程ax2 + bx + c = 0的根

即x1的虚部系数小于等于x2的虚部系数,实部为0时不可省略。实部= -b / (2*a),虚部= sqrt(-△ ) / (2*a)多组输入,一行,包含三个浮点数a, b, c,以一个空格分隔,表示一元二次方程ax2 + bx + c = 0的系数。针对每组输入,输出一行,输出一元二次方程ax2 + bx +c = 0的根的情况。如果a = 0,输出“Not quadratic equation”;所有实数部分要求精确到小数点后2位,数字、符号之间没有空格。,其中x1

2024-01-01 11:27:09 810

原创 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果

浮点数除整形要加.0,加减用变量flag来实现。

2023-12-30 12:13:35 383 1

原创 扫雷游戏的代码

首先创建一个头文件和两个源文件。

2023-12-24 12:03:06 55 1

原创 c语言中%d与%2d与%02d的区别在哪里

{int a = 1;//输出结果为:_1 , _代表空格 return 0;总结:无论哪种表示方法如果我们定义的整数的位数大于我们想输出的数字的位数,输出时仍然是我们定义的数字。{int a = 1;//输出结果:01 return 0;{int a = 1;//输出结果为1 return 0;4.%i . j表示我们输出的数字一共占m个位数,小数点后占n个。

2023-12-23 22:07:39 774 1

原创 写一个函数查找数值下角标

在一个升序数组中查找指定的数值,找到了就返回下标,找不到就返回-1.

2023-12-19 22:37:31 43

原创 一个矩阵转置后的矩阵

【代码】一个矩阵转置后的矩阵。

2023-12-19 15:47:47 331

原创 ||和&&的用法

在这里if(i==0||i==n-1||j==0||j==n-1)只要i==0.i==n-1.j==0.j==n-1中有一个表达式为真,就执行if后面的运算,这里属于或的关系。在这里if(a+b>c&&a+c>b&&b+c>a)要三个条件全满足,才能够执行if后面的运算,这里属于并且的关系。

2023-12-18 23:09:00 356 1

原创 c语言中i=0和i==0有什么区别

而flag==0是判断flag的值是否为0,如果为0,则执行下一条语句。i==0是一个表达式,就是判断i的值是否等于0。i=0是一个赋值语句,就是把0赋值给变量i;这里我们可以注意到flag在赋值上的变化。flag=1是对flag赋值为1。

2023-12-13 15:40:01 850 1

原创 【一维数组】输入10个整数,求平均值

在这里我们需要注意平均值可能是一个带有小数的,所以我们要将平均值强制转化为double类型。

2023-12-11 22:33:41 2120

原创 c语言的分支与循环语句(2)

1、for括号里面的三个表达式是可选的,也就是说可写可不写,表达式2不写的话编译器会认为该条件永远为真,循环会一直执行下去。先执行语句,然后判断表达式,如果表达式为真,执行语句,重复进行,如果表达式为假,则退出循环。先判断表达式,如果为真执行语句,然后继续判断表达式,重新进行,直到表达式为假,退出循环,不再执行。i++是每次执行完大括号里的语句时最后要执行的语句,这里也可以不写,写在大括号内也是可以的。这里的i=1,sum=0就是初始化的过程,这里可以不写,但是在执行循环前必须要初始化。

2023-12-07 14:18:47 346

原创 c语言的分支与循环语句(1)

注意:执行判断条件,如果为真(非0),则执行大括号中的语句。如果满足if的条件就执行if里的代码,否则执行else里的代码。作用:根据问题的多种情况,分别执行对应的代码。作用:判断条件是否成功,成功则执行语句。else if(判断条件2)

2023-12-06 22:54:15 28

原创 学习C语言从入门开始

C语言是一种结构化语言,是大部分编程语言的基础,学好C语言,以后的更多编程语言才有可能学好。2.上课认真听讲积极思考,提高上课效率,老师上课讲述的都是课程的重点,,听好课程可以达到“事半功倍”的目的;通过上机实践来验证所学的理论,通过在机器上查找错误来巩固概念,通过提高上机能力来促进理论学习,开阔编程思路,提高反映速度,提高分析问题解决问题的能力,锻炼心里素质,提高心理承受能力。C语言是一门很有用的,对于我们的就业很实际的语言,学习好C语言是一项必须而实际的语言,我们必须要好好掌握。

2023-11-18 20:41:03 30 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除