自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法(部分)

二分法查找#includeusing namespace std;int binary_search(int arr_s[], int data_s,int n){int low,high,mid,t;low = 0;t = 1;high = n - 1;mid = 0;while (data_s != arr_s[mid] && low < high){mid= (low+ high)/ 2;if (data_s > arr_s[mid]){lo

2021-01-18 13:42:15 98

原创 c语言巩固

分头查找头文件*#ifndef block_H_#define block_H_struct index {int start; int end; int key; };index test[4]; int block_search(int key, int a[]) {int i, j;i = 0; while (i <= 2 && key > test

2021-01-17 16:50:14 132 1

原创 harem管理系统+算法(部分)

官方解释:​ 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科大白话:​ 数据结构就是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据1.2数据结构分类传统上,我们可以把数据结构分为逻辑结构和物理结构两大类.逻辑结构分类:​ 逻辑结构是从具体问题中抽象出来的模型,是抽象意义上的结构,按照对象中数据元素之间的相互关系分类,也是我们后面课题中需要关注和讨论的问题.a,集合结构:结合结构中数据元素出了属于同一集合外,他们之间没有任何其

2021-01-15 11:46:19 299

原创 c语言标准头文件(部分)

stdlib.h简介stdlib .h 头文件定义了四个变量类型、一些宏和各种通用工具函数.库变量下面是头文件 stdlib.h 中定义的变量类型序号 变量 描述1 size_t 这是无符号整数类型,它是 sizeof 关键字的结果.2 wchar_t 这是一个宽字符常量大小的整数类型.3 div_t 这是 div 函数返回的结构.4 ldiv_t 这是 ldiv 函数返回的结构.序号宏 描述1 NULL 这个宏是一个空指针常量的值.2 EXIT_FAILURE 这是 exit 函

2021-01-13 12:14:33 636

原创 c语言标准头文件(部分)

stdarg.h简介stdarg.h 头文件定义了一个变量类型 va_list 和三个宏,这三个宏可用于在参数个数未知(即参数个数可变)时获取函数中的参数.可变参数的函数通在参数列表的末尾是使用省略号(,…)定义的.库变量下面是头文件 stdarg.h 中定义的变量类型:库宏下面是头文件 stdarg.h 中定义的宏:VA_LIST的用法首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针;然后用VA_START宏初始化变量刚定义的VA_LIST变量;然后用VA_ARG

2021-01-12 16:56:51 387

原创 预处理(部分)

#define宏的行为和真正的函数相比存在一些不同的地方,见下表.由于这些不同之处,所以让程序员知道一个标识符究竟是一个宏还是一个函数是丰常重要的.一没把宏名全部大写这样方便区分.#undef这条预处理指令用于移除一一个宏定义.如果一个现存的名字需要被重新定义,那么它的旧定义首先必须用#undef移除....

2021-01-11 16:45:01 98

原创 预处理(部分)

预处理处理预处理命令是c标准规定加入C谔言源程序中的,目的是改进程序设计环境,提高编程效率.但这些命令不是C语言本身的组成都分,所以编泽器无法识别,不能对它们直接进行变编译.因而要编译程序在对c源程序进行编译之前,先由预编译程序对这些编译预处理命令进行处理,这一过程称为“预编译处理”在c语言中,凡是以“#”开头的行,都称为预编译指令,主要有:#include#define#if#else#endif#elif#ifndef#undef#line#program#error根据需要,

2021-01-10 16:56:33 155

原创 文件(部分)

文件的打开(fopen函数)FILE*fp=fopen(文件名,操作方式);①需要打开的文件名,也就是准备访问的文件的名字;②使用文件的方式(“读”还是“写”等);③让哪一个指针变量指向被打开的文件,文件的关闭fclose(文件指针);功能:关闭文件,释放文件指针.文件的操作方式“r”(只读)为输入打开一个文本文件文件必须存在.“w"(只写)为输出打开一个文本文件存在则清除,不存在则创建“a”(追加)向文本文件尾增加数据文件必须存在“rb”(只读)为输入打开一个二进制文件文件必须存在“wb”(只写)

2021-01-09 19:17:23 50

原创 文件(部分)

文件的概念什么是文件?所谓文件一般指存储在外部介质(如磁盘磁带)上数据的集合.什么是流?操作系统是以文件为单位对数据进行管理的,输入输出是数据传送的过程,数据如流水一样从一处流向另一处,因此常将输入翰出形象地称为r依( tream).即翰入输出流.C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成.一个输入输出流就是一个字节流或二进制流.文件名:一个文件要有一个惟一的文件标识,以便用户识别和引用.文件标识包括三部分:(1)文件路径(2)文件名主干(3)文件后缀文

2021-01-08 18:48:26 413

原创 指针(部分)

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210101191119636.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81Mjg1MjQyOA==,size_16,color_FFFFFF,t_7实际当中,需要声明一个复杂指针时,如果把整个声明写成上面所示的形式,对程序可读...

2021-01-01 19:21:12 76

原创 基础(部分)

scanf scanf_s标准的scanf 不安全的函数,输入的时候有可能会越界更安全的函数scanf_s输入字符和字符串的时候需要指定长度,所以更安全,一旦达到输入的长度,会自动阶段输入注意:格式控制字符串中,每个格式控制符,最好用空格隔开,输入字符串的时候遇到空格会自动截断getcahr获取一个按键,返回按下的键的ascii码值注意缓冲区问题gets_s获取一串字符串,可以读取空格,对于输入字符串推荐用这个printf格式控制符要对应,后面的变量参数列表格式控制符中间可

2020-12-31 18:14:00 59

原创 字符串(部分)

首先要明确的一点是,函数也可以作为函数的参数来传递.回调函数到底是怎么回事?首先至少要有3种类型的函数.主函数:相当于整个程序的引擎,调度各个函数按序执行回调函数:一个独立的功能函数.中间函数:一个介于主函数和回调函数之间的函数,登记回调函数,通知主函数,起到一个桥梁的作用.当做函数参数传入的函数,称之为回调函数(至于为什么要叫“回调函数”,不能叫别的呢?其实这只是人为规定的一个名字.你也可以叫“maje专属函数”,但是到时候你又会问为什么要叫“maye专属函数”,它总的有个名字吧!所以叫“回调函数”

2020-12-30 19:24:25 73

原创 指针

二维数组的每个元素都是一维数组,所以最大的存储单元应该是一个指向一维数组的指针.刚刚学习一维数组,接触到的指向整个数组的指针,就是二维数组指针.当指向二维数组时,不需要对数组名取地址,切记~.如何使用二维数组指针?下标法:对于二维数组,一般使用下标法,简单方便.下标法:对于二维数组,一般使用下标法,简单方便指针数组和数组指针.指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身的大小决定,每一个元素都是一个指针,它是“储存指针的数组”的简称,数组指针:首先它是一个指针,它指向

2020-12-29 18:57:01 92

原创 指针(部分)

算术运算:指针是一个用数值表示的地址.因此,我们可以对指针执行四种算术运算:++、–、+、-.(其他运算没有意义)总结:指针的每一次递增,它其实会指向下一个元素的存储单元,指针的每一次递减,它都会指向前一个元素的存储单元,指针在递增和递减时跳跃的字节数(步长)取决于指针所指向变量数据类型长度,比如 int就是4个字节.关系运算:指针可以用关系运算符进行比较,如==、<和>.如果p1和p2指向两个相关的变量.比如同一个数组中的不同元素,则可对p1和 p2进行大小比较.总结:对相关变量的指针进

2020-12-27 18:26:28 62

原创 无头链表封装方式

#include<stsio.h>#include<stdlib.h>使用二级指针方法无头链表:第一个节点中存放了数据struct Node{int data;struct Nodenext;};struct NodecreateNode(int data){structNodenewNode=(struct Node)malloc(sizeof(struct Node));newNode->data=data;newNode->next=NU

2020-12-26 18:53:56 80

原创 指针(部分)

地址内存单元(字节)的编号地址是不变的地址是唯一的地址是连续的首地址变量的第一个最大存储单元地址其实就是一个整数指针指针:指针类型 大小是四个字节(32位机器)八个字节(64位机器)指针变量:是一个变量,用来保存地址;指针变量保存谁的地址,那我们就说指针指向了谁指针指向的内存空间整数:int字符型:char小数:float地址:指针变量指针的定义数据类型* 指针变量名定义指针类型的诀窍:怎么定义变量,就先写出一个变量,再在变量名前面加一个星号※,表示变量是一个指针变

2020-12-25 19:03:08 83

原创 链表

struct NodesearchInfoByName(struct NodeheadNode,char filrName){struct NodepMove=headNode->next;while(headNode!=NULL&&strcmp(pMove->data.name,namr)){pMove=pMove->next;}return pMove;}}

2020-12-24 17:52:45 83 2

原创 链表功能基础

#include<stdio.h>#include<stdlib.h>#include<conio.h>如何做一个管理类:增-删-改-查;先做菜单采取一种插入方式,一种删除方式structNode{.int data;struct gril data;struct Node *next;};将数据修改为相应数据struct girl{char name[20];int age;int num;char grade

2020-12-23 18:32:53 91

原创 链表(部分)

于指定位置插入告诉指定位置创建新节点posFrontNodeposNodeposFrontNode->next=newNode;newNode->next=posNode;struct Node*headNode:操作的是哪个链表int data:新节点数据int posData:指定位置void insertByAppoin(struct nodeheadNode,int data, int posData){struct NodeposFrontNode=headNo

2020-12-22 20:47:06 86

原创 链表(部分)

数据结构:存储数据的结构有头链式结构有头链表链式结构:结构体变量与结构体变量连接在一起结构体:数据域,指针域struct Node{int data;struct Node next;}#include <stdio.h>#include<stdlib.h>struct Node{int data;struct Nodenext;};int main()(创建结构体变量){struct Node node1={1,NULL};struct N

2020-12-21 19:36:55 77

原创 图形编程

光的三原色是红,绿,蓝颜色使用用三原色表示用RGB宏合成颜色,实际上合成出来的颜色是一个十六进制的整数RGB(红色部分,绿色部分,蓝色部分)每个颜色部分的值都是从0~255坐标默认的原点是在窗口的左上角,X轴向右为正,Y轴向下为正,度量单位是像素点设备绘图表面在EasyX中,设备分两种,一种是默认的绘图窗口另一种是IMAGE对象,通过SetWorkingImage()函数可以设置当前用于绘图的设备.设备当前用于绘图的设备后,所有的绘图函数都会绘制在该设备上initgraph(int wid

2020-12-20 18:28:35 781

原创 函数(部分)

如int a,int b为形参是剧本角色,但函数调用时传递进来的参数称为实参,为演员,函数执行就是演戏的过程程序刚开始执行的时候,编译器并不为形参分配存储空间,是因为它只是个角色,不是实体,一直到函数调用时,编译器为形参分配存储空间,并将实参的值复制给形参,结合.可知在实参被调用前,怎样处理形参都不会影响实参,类似于剧本中的角色受伤并不是演员真正的受伤,在函数执行结束返回时,创建的形参被撤销,戏演完了,角色终止函数调用的一般形式:函数名(实参列表)作为表达式的某一项int res=add(5,3)

2020-12-19 18:36:52 91 1

原创 函数(部分)

函数是什么是完成特定任务的独立程序代码是构成程序的基本模块为什么要使用函数可以省去编写重复代码可以让程序模块化,提高代码可读性方便后期修改,完善隐藏了实现的细节函数分类用户角度,c语言的函数可分为标准函数,即函数库别人封装好的函数,非常丰富例如输入/输出 scanf(),printf(),rand()数学计算 sqrt(),abs(),sin()自定义函数自己编写的用来完成特定任务的函数从函数形式,c语言的函数可分为无参函数:getchar()有参函数:print

2020-12-18 21:27:06 59 1

原创 字符串(部分)

这里的字符串是常量,无法修改char *name=“hello,world”;用数组存的字符串,是变量,可以修改char str[20]=“hello world”;name[0]=‘A’;引发了异常:写入权限冲突。name是常量str[0]=‘A’;printf("%s\n",name);printf("%s",str);return 0;""空字符 " "里面内含’\0’char str[10]={0};#include<stdio.h>int ma

2020-12-17 18:15:45 99 1

原创 字符串

字符普通字符:‘w’,‘1’转义字符’\a’,’\n’字符串“Boy”,“Maye”字符与字符串的区别1.形式上不同2.本质上,字符串由结束符’\0’在c语言中是没有字符串类型的,那么如何输出字符串呢char ch=‘y’;putchar(ch);char name[10]={‘m’,‘a’,’‘y’,‘y’};是字符串没有存满或超过数组的最大存储数量,所以后面的元素自动补零,即0为结束符char str[5]={‘m’,‘a’,‘y’,‘e’,‘2’};不是字符串,没有结束符,已经

2020-12-16 19:07:11 89

原创 文件(部分)

操作,fgetc这个函数读取完会将文件指针移动到下一个字符char ch=fgetc

2020-12-15 19:37:02 70 1

原创 文件操作

文件分类:文本文件和二进制文本文本文件:保存的时候,每一个字符对应一个字节二进制文件:按照二进制编码保存的文件文件操作:打开,写入,读取,关闭数据永久化,存入硬盘中#include<stdio.h>int main(){打开文件FILE(结构体文件信息.)fp=fopen(“C:…”,(位置);if(fp==NULL){printf("打开文件失败);return 0;}在文件使用结束之后,一定要关闭文件关闭文件fclose(fp)return 0;函数原型

2020-12-14 19:02:01 85

原创 推箱子

二维数组与一维数组相似,但是用法上要比一维数组复杂一点。后面的编程中,二维数组用的很少,因为二维数组的本质就是一维数组,只不过形式上是二维的。定义:数据类型 数组名[ROW][COL】ROW二维数组的行COL二维数组的列对于二维数组,可以看成一张表格,方便理解,但是下标和一维数组一样,都是从0开始的内存理解二维数组是由行和列组成的,所以说,要获取到一个元素,需要两个下标表示可以理解为二维数组的每个元素都是一维数组游戏设计步骤1.初始化数据2.绘制界面3.人及箱子移动#defi

2020-12-13 18:07:00 192

原创 共同体

共同体定义定义union多个成员共生,共同存在,多个成员占用同一块内存,在任一时刻只有一个成员使用此块内存共同体是会按照成员中最大的一个数据长度分配空间union TextUnion{Char i;short j;}union TextUnion tu={45}; 只能给一个值printf("%d",tu.i);printf("%d",tu.j);printf("%d",&ti.i);printf("%d",&tu.j);解析范围不同,类型不同,地址相同

2020-12-12 21:11:04 81

原创 宏定义(部分)

宏定义#include<stdio.h>#include<stdlib.h>1.符号常量2.替换3.宏函数 宏函数参数一定要括号4.对编译器进行预处理,将define写在最上面#define MAX 100 符号常量#define ING int#define 整形 int#define PRINYINFO printf("%d\t%s\n",age,name#define MAXNUM(a,b) ((a)>(b)?(a):(b))int main

2020-12-12 20:57:42 71

原创 结构体(部分)

不完整声明配合指针struct A{int num;struct B b;};struct B{int num;};struct A{char ch;short s;int i;}sizeof(struct A)==8边界对齐:按照最大的内对齐struct A{char ch;double d;

2020-12-11 19:39:38 74

原创 结构体自引用

结构体的第一种方式typedef struct _person{char name[20];char sex[4];unsigned char age;int height;float weight;}person,*pperson;第二种方式struct _person{}char name[20];char sex[4];unsigned char age;int height;float weight;};typedef struct _person person

2020-12-11 18:28:53 399

原创 结构体指针

将一个指针可以指向一个结构体person* pperson=&p1;(*pperson).age<=>pperson->agevoid say{person星号※ p){printf(“姓名:%s,性别:%s,年龄:%d,身高%d,体重%.2f\n”,p->name,p->sex,p->age,p->height,p->weight);Person 星号※pperson=&p1;say(pperson);}传指针和传址有什么区

2020-12-10 19:45:35 85 1

原创 结构体

结构体是一种构造类型,它是由多个成员组成,其中每个成员可以是基本数据类型或者也可以是构造类型人:姓名,年龄,身高,体重struct 结构名struct person(){char name[20];char sex[4];unsigned char age;int height;float weight;};struct Datatime{int year;int month;int day;int hour;int minute;int second;};int m

2020-12-10 19:33:15 117 1

原创 循环

循环,就是对某块段代码进行多次重复执行,循环结构是c语言程序中书写常用的一种重要控制结构,c语言中提供了三种循环结构分别是while结构,do while结构和for结构循环结构有两大要素:循环条件和循环体,当满足某个条件时,重复执行某些动作,直到该条件不再满足,这个表述很好的体现了循环条件和循环体的关系。构造循环时,首先要明白要做什么,即’循环体’是什么",这是和程序的目的有关,了解干什么还不够,还要知道什么时候开始做,什么时候停,...

2020-12-09 21:14:30 249

原创 if语句(部分)

#include<stdio.h>int main(){int age=17,money=100;if(age<=18){if(money>100){printf(“富二代”);}else{printf(“努力”);}}else为就近原则}

2020-12-08 19:42:07 81

原创 语句(部分)

程序的最小独立单元----语句如果把写程序和写小说类比,变量常量等可以看成是字和词,函数可以可以看做一个段落,运算符可以看做是字词的组合方式(规则),那么,字词组成的句子就是小说的最小独立单元,表达了一定的意思,同样,程序的最小独立单元室"语句",每个语句表达出完整的意思为解决某一问题而设计的一系列有序指令的集合表达式5+2赋值int a=5+2;函数调用语句printf(“hello”);空语句;;块语句{printf("%d",5+2-8);}分支语句判断整数是奇数还是

2020-12-08 19:34:32 75

原创 运算符

位于赋值运算符两侧的两个值,赋值号左边的叫做左值,右边的叫右值L-value中的L指的是Location,表示可寻址R-value中的R指的是Read,表示可读左值,指的是如果一个表达式可以引用到某一个对象,并且这个对象是一块内存空间且可以被检查和存储,那么这个表达式就可以作为一个左值右值,指的是引用了一个存储在某个内存地址里的"数据"如“int a=66”,声明了一个整型变量a,则a是左值,66是右值...

2020-12-08 18:59:53 131

原创 c语言字符串操作(部分)

char *str=“helloworld”;char sz{‘h’,‘e’,‘l’,‘l’,‘o’,’\0’,‘w’}printf (“长度=%d\n”,strlen(str));printf("%d\n",strlen(sz));即遇到’\0’结束计算unsigned int MyStrlen(const char *str){unsigned int n=0;while (星号※str !=’\0’){str++;n++;}return 0;}printf("%d\n",M

2020-12-07 18:27:22 136

原创 指针与二维数组

int arr2[4]【5】={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},};for (int i=0;i<4;i++){ for (int j=0;j<5;j++){printf("%d",arr2[i]【j】;}printf("\n);}arr表示什么?首地址类型是什么,不是指向int型的指针,是一个指向数组的指针可以把二维数组看成一维数组,一维数组一行为一个元素

2020-12-06 18:30:36 58

空空如也

空空如也

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

TA关注的人

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