C语言的学习
文章平均质量分 55
我们都有光明的未来
这个作者很懒,什么都没留下…
展开
-
C语言项目——贪吃蛇小游戏
C语言项目2、贪吃蛇小游戏本项目学习:结构体,枚举,基础的图形插件:graphics.h,time.h的随机数生成等2.1 功能需求分析此处首先分析一下该项目需要完成的功能:1、蛇的生成2、食物的随机生成3、蛇吃掉食物身体变长4、蛇撞到墙壁或者自己的身体游戏结束5、达到一定分数游戏通关2.2 头文件准备snack.h#pragma once#include <stdio.h>#include <stdlib.h>#include <time原创 2021-04-22 21:51:32 · 339 阅读 · 0 评论 -
1.14 基数排序(桶排序)
1.14 基数排序(桶排序)1.14.1 介绍1)基数排序(Radix Sort) 属于”分配式排序“(distribution sort),又称”桶子法“(bucket sort)或bin sort,顾名思义它是通过键值的各个位的值,将要排序的元素分配至某些”桶“中,达到排序的作用2)基数排序属于稳定性的排序算法,基数排序是效率最高的稳定性排序算法3)基数排序时桶排序的扩展4)基数排序是1887年赫尔曼·何乐礼发明的。它是这样实现的:将整数按位数切割成不同的数字,然后按每个位数分别比较。注:原创 2021-04-18 15:01:39 · 223 阅读 · 0 评论 -
1.13 归并排序
1.13 归并排序1.13.1 介绍**归并排序(Merging Sort)**是利用归并的思想实现的排序算法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各答案“修补”在一起,即分而治之)。1.1.3.2 原理归并排序思想示意图1——基本思想:归并排序思想示意图2——合并相邻有序子序列::1.13.3 归并排序实现注:sort.h 在c语言排序总结—前序准备中归并排序代码实现:#incl原创 2021-04-17 19:24:06 · 129 阅读 · 0 评论 -
1.12 快速排序
1.12 快速排序1.12.1 介绍**快速排序(QuickSort)**是对冒泡排序的一种改进。其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据要小,然后在按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,一次达到整个数据变成有序序列。1.12.2 原理1.12.3 快速排序实现注:sort.h 在c语言排序总结—前序准备中快速排序代码实现#include<stdio.h>#include<st原创 2021-04-16 22:49:17 · 82 阅读 · 0 评论 -
1.11 堆排序
1.11 堆排序1.11.1 介绍1)堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。**tip:**没有要求结点的左孩子的值和右孩子的值的大小关系2)**堆排序(Heap Sort)**是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn), 它也是不稳定排序。3)大顶堆举例大顶堆与数组之间的转换特点:arr[i] >= arr[2原创 2021-04-16 21:42:26 · 241 阅读 · 0 评论 -
1.10 希尔排序
1.10 希尔排序1.10.1 介绍**希尔排序(Shell Sort),**是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,他是简单插入排序经过改进后的版本,也称为缩小增量排序。1.10.2 原理1.10.3希尔排序实现希尔排序代码实现:#include<stdio.h>#include<stdlib.h>#include<time.h>#include "sort.h"int main() {原创 2021-04-16 17:04:08 · 95 阅读 · 0 评论 -
C语言项目—学生成绩管理系统(完结)
C语言项目1、学生成绩管理系统本项目旨在增强,学习C语言的指针和链表部分知识1.1 功能需求部分介绍此处首先介绍一下该项目要完成的功能主要包括如下9个功能:1、录入学生信息:即链表的功能2、打印学生信息:链表元素的遍历3、保存学生信息:文件的“写”功能,数据持久化4、读取学生信息:文件的“读”功能5、统计学生人数:链表元素的遍历6、查找学生信息:链表元素的搜索7、修改学生信息:链表元素的修改8、删除学生信息:链表元素的删除9、系统的保持、清屏、退出。1.2 头文件的准备原创 2021-04-14 22:48:07 · 8325 阅读 · 3 评论 -
1.9 直接插入排序
1.9 直接插入排序1.9.1 介绍**直接插入排序(straight Insertion Sort):**把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。1.9.2 原理直接插入排序的原理如下:1.9.3 直接插入排序实现直接插入排序的代码实现如下:#include<stdio.h>原创 2021-04-14 21:54:16 · 115 阅读 · 0 评论 -
1.8 简单选择排序
1.8 简单选择排序1.8.1 介绍简单选择排序法(Simple Select Sort),它的基本思想是:第一次从arr[0]arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1]arr[n-1]中选取最小值,与arr[i]交换,…;,第n-1次从arr[n-2]~arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得原创 2021-04-14 18:14:13 · 138 阅读 · 1 评论 -
1.7 冒泡排序
1.7 冒泡排序冒泡排序(Bubble Sort)一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。冒泡排序的原理:未优化的冒泡排序代码:#include<stdio.h>#include<stdlib.h>#include<time.h>#include "sort.h"int main() { //生成LENGTH长度的随机数组,并展示出来 int arr[LENGTH]; createRan原创 2021-04-14 17:25:48 · 68 阅读 · 0 评论 -
C语言排序总结——前序准备
C语言排序算法总结——前序1.1 排序算法介绍排序算法(Sort Algorithm),是将一组数据,依照指定顺序进行排列的过程。1.2 排序的分类1)内部排序:指将需要处理的所有数据都加载到内部存储其(内存)中进行排序2)外部排序:数据量过大,无法全部加载到内存中,需要借助外部存储(文件等)进行排序。3)常见的排序算法分类1.3 算法的时间复杂度1.3.1 度量一个算法执行时间的两种方式1)事后统计法这种方法主要是通过设计好的测试程序和数据利用计算机计时器对不同算法编制的程原创 2021-04-14 15:47:32 · 455 阅读 · 0 评论 -
全局变量和局部变量的存储类别,存储位置
C语言中局部变量和全局变量变量的存储类别(static,extern,auto,register)1----局部变量和全局变量在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了。这种变量有效性的范围称变量的作用域。不仅对于形参变量,C语言中所有的量都有自己的作用域。变量说明的方式不同,其作用域也不同。C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量。1.1 局部变量局部变量也称为内部变原创 2021-03-25 16:39:32 · 8271 阅读 · 0 评论 -
C语言中strlen和sizeof的区别
C语言中strlen和sizeof的区别C语言中没有字符串,用的是字符数组来模拟字符串。C风格的字符串时字符数组然后在末尾加0表示结尾。strlen函数strlen(char *)求的是字符串的实际长度,方法是从开始一直到第一个‘\0’,不包括‘\0’在内。sizeof关键字sizeof是一个单目运算符,而不是一个函数,与函数strlen不同,他的参数可以是数组、指针、类型、对象、函数等。测试代码如下:#include<stdio.h>#include<string.h&原创 2021-03-15 16:15:40 · 225 阅读 · 0 评论 -
关于内存泄露和内存溢出以及C语言为什么要用malloc开辟内存空间
内存溢出( out of memory),指程序要求的内存超出了系统所能分配的范围,出现out of memory;比如申请一个int类型,但给了它一个int才能存放的数,就会出现内存溢出,或者是创建一个大的对象,而堆内存放不下这个对象,这也是内存溢出。内存泄露 (memory leak),是指程序在申请内存后,无法释放已申请的内存空间(指分配出去的内存无法被gc回收)。一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。因此,我们从上面也可以推断出内存泄露可能会导致内存溢出转载 2021-03-06 19:43:02 · 1358 阅读 · 0 评论