自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 五、编译预处理

宏替换是一种”机械替换“,宏定义语句后一般不加分号,因为它仅具有替换功能,并不是具体的代码语句,如果行末有分号,那么分号也属于替换对象的一部分。注意:一个include命令只包含一个头文件。文件包含的命令必须是文本文件(ASCII码文件),一般是C++源文件或系统库文件。例如:#define S(a,b) a*b。#include<文件名>或#include "文件名"宏命令之后,出现宏名的地方均用其对应的字符串来替换。格式:#define 宏名(参数表) 字符串。# define 宏名 字符串。

2023-09-07 21:11:21 445

原创 四、函数笔记

定义局部变量时,用auto修饰的变量,属于动态变量,开始调用时分配空间,结束时回收,C++默认局部变量时auto型,所以当定义局部变量时,一般不用关键字auto修饰。多个源文件程序中,一个函数不仅能在本源程序中使用还可以在其他源程序中使用,定义函数时在zai类型标识符前加上extern,若省略extern,默认为外部函数。静态局部变量,程序在开始时为其分配空间,调用结束后,系统并不会回收这些变量所占用的存储空间,再次调用时变量任然使用原来分配的存储空间,外部类型变量,一定是全局变量。

2023-08-10 00:39:54 301

原创 三、基本流程控制结构

只能作用在循环语句中,作用是结束本次循环,即跳过当前循环的剩余语句,转到判断循环条件的起始位置,直接判断循环条件,决定是否重新开始下一次循环。语句标号是一个有效的标识符,这个标识符加上一个冒号“ : ”一起出现在程序的某处,即为跳转的位置。二者都是C++的库函数,功能都是终止程序的执行,将流程控制返回给操作系统。注意:break语句是结束本层循环,continue是结束本次循环。break语句只能用在switch语句和循环语句中。内嵌语句是复合语句,一定用"{}"括起来。goto语句是一种无条件转移语句,

2023-08-03 22:18:37 284

原创 二、基本数据类型和表达式

注:如何区分和使用这两个浮点类型呢,首先float和double的精度不同, float保留到小数点后面7位,而double保留到小数点后面16位,float能保证6 位有效数字,而double能保证15位有效数字,如果在不追求精度的的情况下当然用 float比较好,节省内存,如果需要很高的精度的情况下,最好还是用 double,平时我们定义浮点型变量一般都用double,毕竟精度高,一般精度 的损失是不能忽略的。通常表示范围为-2,147,483,648至2,147,483,647,取决于编译器和平台。

2023-07-22 21:24:02 231

原创 一、C++基础知识

进位计数制:二进制B,八进制Q,十六进制H,十进制D。带符号数在计算机中的表示:原码,反码,补码。字母与字符的编码:ASCII。计算机只能处理二进制数。

2023-07-20 15:54:34 57

原创 推箱子小游戏

推箱子小游戏

2022-10-24 09:53:46 1129

原创 数组作为函数参数及参数传递

一、一维数组作为函数参数二、多维数组作为函数参数于多维数组而言,只有第一维可以选择写成数组形式或指针形式。后面的维度需要声明长度。以二维数组为例:三、参数传递1.整个数组作为函数参数2.数组中的元素作为函数参数注:1.数组名作为函数实参传递时,函数定义处的形参可以指定数组长度也可以不指定数组长度。2.数组元素作为函数实参传递时,数组元素类型必须与形参数据类型一致。......

2022-06-21 22:05:44 8782 1

原创 C++贴图,图形化

在解决方案资源管理器中右键项目的名称,点开在文件资源管理器中打开文件夹。将图片文件复制粘贴到文件资源管理器中的文件夹里。#include //图像处理头文件,若报错,需要下载该头文件。easy-x可下载。结果:结果:......

2022-06-06 16:39:01 1868

原创 哈夫曼树压缩文件

1.问题描述准备一个文件,对该文件各种字符进行Huffman编码,将该文件翻译成Huffman文件。2.基本要求(1)设计哈夫曼树的结点存储结构(2)设计编码和破译方法(3)输入:源文件(4)输出:Huffman编码文件3.程序实现:(1)代码:#include<iostream>#include <fstream> #include<map>#include<queue>#include <string&g

2022-05-29 17:24:24 308

原创 双向冒泡排序

1.问题描述:实现双向冒泡排序。2.实验要求:(1)设计待排序记录的存储结构;(2)设计双向冒泡排序算法;(3)输入:任意输入n个整数,数据个数和数据由键盘输入;(4)输出:各趟的排序结果;3.程序实现:(1)代码:#include <iostream>using namespace std;void swap(int* a, int* b)//交换两个数据元素的值{ int temp = *a; *a = *b; *b = t

2022-05-29 10:48:21 294

原创 动态查找——二叉排序树

1.问题描述:判别一棵二叉树是否为二叉排序树,如果是,在其上实现查找功能。2.实验要求:(1)以二叉链表为存储结构,创建二叉树;(2)设计判别算法;(3)输入所要查找表的数据;(4)输出判别结果;3.程序实现:(1)代码:...............

2022-05-28 23:40:16 353

原创 存储结构转换问题

1.问题描述:以图的邻接矩阵方式创建一有向图,然后根据此存储,求出此有向图的邻接表存储方式,并输出邻接表。2.实验要求:(1)定义图的邻接矩阵、邻接表的存储结构。(2)按图的邻接矩阵结构创建图。(3)根据图的邻接矩阵存储,求出邻接表存储。(4)输入:有向图。(5)输出:图的邻接矩阵和邻接表。3.程序实现:(1)代码:#include <iostream>using namespace std;const int MaxVexNum = 10;//最大

2022-05-19 18:27:19 141

原创 二叉树叶子结点个数统计

1.问题描述:输入一棵二叉树,求出其叶子结点个数。2.实验要求:(1)设计二叉树的二叉链表存储结构(2)设计求叶子结点个数的递归算法(3)输入一棵二叉树(4)输出二叉树的叶子节点个数示例:ab#c##d##二叉树叶子结点个数为:3.程序实现:(1)代码:#include<iostream>using namespace std;//二叉树结点typedef struct BTNode { char root; struct BTNod

2022-05-18 19:55:17 20245 11

原创 迷宫问题的设计

1.问题描述:实验问题:设计程序求解出迷宫的一条通路。2.实验要求:(1)设计迷宫和通路的存储结构;(2)设计求解通路的算法;(3)输入:可在程序中设定,也可键盘输入;(4)输出:迷宫,入口,出口,通路路径。3.程序实现:(1)代码:#include<iostream>using namespace std;int mg[6][8] = { {1,1,1,1,1,1,1,1}, {1,0,0,1,0,0,1,1}, {1,1,0

2022-05-16 12:59:35 366

原创 有序表的合并

1.问题描述把两个有序表归并为一个有序表。2.基本要求(1)建立模型,设计表的存储结构(2)设计好归并算法(3)输入LA,LB的元素(4)输出归并后的有序表LC示例:LA LB LC 11,22,33,44 1,13,17,39 1,11,13,17,22,33,39,44 11 1,13,17,19 1,11,13,17,39 空 1,13,17,19 1,13,17,19 3.程序实现:(1)代码#

2022-05-14 12:21:51 415

原创 逻辑、理性的摘要

数学柏拉图主义:数学的研究对象是抽象的,但却是一种客观的存在,他们不依赖时间,空间和人的思维而永恒存在逻辑是全程在思维这个抽象的世界里进行的,不受任何现实因素的影响,因此,世界最本质,最客观的规律是在逻辑中得到的结论。顶尖的数学家往往不受当下科学水平的限制,完成一些非常超前的理论。例如:费马大定理提出300年后才被证明;在大自然的因果律面前,让人类文明得以延续的是理性。无比奇妙无比神秘的创造都可以在逻辑中得到解释。我们往往能听到“以后买菜又不用解方程“这样的言论。数学本身无法帮助你但学数学一

2022-05-14 00:34:34 142

原创 约瑟夫环的实现

1.问题描述背景:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。约瑟夫环是华丽的分割线实验问题:编号为1,2,3,4,5......n的n个人围成一圈,从编号k开始报数,报到m的人出圈。从下一位开始新一轮报数,直至所有人出圈。2.实验要求:(1)建立模型,确定存储结构。

2022-05-13 18:44:19 258

原创 二叉排序树

1.动态查找:.动态查找所含的数据元素的个数可以随着所做的插入、删除等操作增加或减少。2.定义:二叉排序树(Binary SortTree)是具有下列性质的二叉树:⑴若左子树不空,则左子树上所有结点的值均小于根结点的值;若右子树不空,则右子树上所有结点的值均大于根结点的值。简记为左小右大(2)左右子树也都是二叉排序树。示例:注意:对二叉排序树进行中序遍历得到有序序列3 12 24 37 45 53 61 78 90 1003.二叉排序树的查找过程:(1)若根结点的关键字值

2022-05-12 20:10:13 374

原创 数据结构笔记——图

图的详细知识点一、图的定义及相关术语图的定义图的术语1.边和顶点的关系2.图的分类3.子图4.生成树、生成森林图的抽象数据类型二、图的存储及操作邻接矩阵定义性质:邻接矩阵相关算法邻接表定义性质有向图的逆邻接表邻接表相关算法十字链表定义十字链表相关算法邻接多重表定义邻接多重表相关算法一、图的定义及相关术语图的定义图的术语1.边和顶点的关系注:路径上边的数目称为路径长度2.图的分类(5)稀疏图、稠密图(稀疏与稠密是相对而言的)注意:强连通图和弱连通图是对有向图而言的。3

2022-05-10 16:09:37 423

原创 树和森林转化为二叉树及树和森林的遍历

⑴)加线——树中所有相邻兄弟之间加一条连线。(2)去线——对树中的每个结点,只保留它与第一个孩子结点之间的连线,删去它与其它孩子结点之间的连线。(3)层次调整——以根结点为轴心,将树顺时针转动一定的角度,使之层次分明。第三点可以直接记为“左是孩子,右是兄弟”...

2022-05-09 23:11:39 1909

原创 结构体处理成绩

现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。编写一个函数input,用来输入一个学生的数据记录。 编写一个函数print,打印一个学生的数据记录。在主函数调用这两个函数,读取N条记录输入,再按要求输出。 N<100#include<iostream>using namespace std;struct student{ int id; char name[100]; int score[3];};void input(struct student.

2022-05-04 21:43:20 337

原创 结构体之时间设计

题目描述定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。输入年月日输出当年第几天#include<iostream>using namespace std;struct time{ int year; int month; int date;};struct time num;int main(){ cin >> num.year; cin >> num.month; cin >&gt

2022-05-02 11:59:22 515

原创 数据结构笔记——树

一、树的基本操作二、树的存储结构1.双亲表示法:示例:存储表示为:#define maxnode //树的结点最大个数template <Class T>{T data;//数据域int parent;//指针域};NodeType t[maxnode];优缺点:该存储方式对于查找双亲和根结点十分方便,但若查找某结点的孩子结点,需要查询整个数组。2.孩子表示法:(1)多重链表表示法:方案一:每个结点指针域的...

2022-05-01 23:55:30 628

原创 二叉树的应用——赫夫曼树

1.赫夫曼树(最优二叉树)的基本概念2.赫夫曼树的存储实现根据二叉树性质:非空二叉树,叶子节点数为n0,度为2的节点数为n2,则n0=n2+1。可知n个叶子结点的赫夫曼树有2n-1个结点3.存储结构注意权值一定是整型4.赫夫曼树的特点5.构造赫夫曼树的方法最优前缀编码图中:左0右1​​​...

2022-05-01 22:13:32 586

原创 结构体相关知识点详解

一、结构体与结构体的声明1.定义:C++允许用户定义一种新的数据类型,把属于同一事物的若干个相关数据构成一个整体,统一管理,新的数据类型称为结构体。2.声明形式:struct 结构体类型名{数据类型 成员1;数据类型 成员2;~ ~ ~ ~ ~数据类型 成员n;};例:struct student{ int num; char name[20]; char sex;};二、结构体类型变量1.定义结构体类型变量(1)先声明...

2022-04-27 17:34:48 616

原创 最大公约数最小公倍数,水仙花数,完数

写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入#include<iostream>using namespace std;int gys(int a, int b){ int i; for (i = a; i > 0; i--) if (a%i == 0 && b%i == 0) break; return i;}int gbs(int a, int b){ int t; t=g

2022-04-24 21:10:30 310

原创 单链表笔记

1.性质:顺序性:对单链表的访问只能顺序访问。独立性:结点之间的联系由指针指向确定。各结点存储位置相对独立。2.定义:3.基本操作实现:单链表初始化:template <class T> T Linklist(Linklist<T> &L) //创建空链表L{ head = new Node; //创建新的头结点 head->next = null;}销毁单链表:template <class T&gt

2022-04-23 22:42:04 546

原创 线索二叉树笔记

一、线索二叉树的定义与结构1.定义:保存结点在某种遍历中直接前驱与直接后继的位置信息,可以利用二叉树的二叉链表存储结构中的空指针域来指示。这些指向直接前驱结点和直接后继结点的指针称为线索,加了线索的二叉树称为线索二叉树。2.优点:反映了前驱结点和hou...

2022-04-22 21:47:52 530

原创 自定义函数之数字后移

题目:有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。输入输入数据的个数n 依次输入n个整数 移动的位置m输出移动后的n个数代码:#include <iostream>using namespace std;void process(int a[],int n,int m){ int b[100]; for (int i = n - m, t = 0; i < n; i

2022-04-20 22:38:26 348

原创 寻找二叉树的最大值

思路:(1)将二叉树分为如下几种:1.仅有根结点;2.有根结点,有左孩子,无右孩子;3.有根结点,有右孩子,无左孩子;4.有根结点,有左孩子、右孩子;(2)根据不同种类的二叉树比较结点所指向的值的大小:1.不用比较,返回根结点指向的值;2.根节点与左孩子进行比较;3.根节点与右孩子进行比较;4.根节点与左、右孩子进行比较;(3)比较的同时,递归其左,右孩子,返回左子树,右子树中较大的值算法:template <class T>int max

2022-04-18 16:52:37 4010 1

原创 二叉树笔记

一、数的基本用语:双亲和孩子,兄弟,祖先和子孙不过多介绍。有序树和无序树;数据结构中讨论的一般是有序树。森林:m棵互不相交树的集合。二、二叉树:1.定义:有限元素集合,由根和不相交的左子树,右子树组成。2.5种形态:3.性质:性质1:第i层上最多有2^(i-1)个节点(i>=1)。性质2:深度为k的二叉树的中,最多有2^(k-1)个结点(k>=1)。性质3:非空二叉树,叶子节点数为n0,度为2的节点数为n2,则n0=n2+1。...

2022-04-17 15:05:50 801

原创 对数组进行换位

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数;①输入10个数;②进行处理;③输出10个数。#include <iostream>using namespace std;void input(int a[]){ for (int i = 0; i < 10; i++) cin >> a[i];}void process(int a[]){ int min = a[0], max = a[0]; int l, c

2022-04-14 21:45:16 607

原创 字符数组及相关函数详细知识点

字符数组及相关函数一、字符数组1.定义2.初始化3.字符串赋值和结束标志4.输入与输出二、字符串处理函数1.字符串连接函数strcat或stract_s2.字符串复制函数strcpy和strcpy_s3.字符串比较函数strcmp4.求字符串函数长度strlen5.大写字母变为小写字母strlwr6.小写字母变成大写字母strupr一、字符数组1.定义char + 数组名 +[个数]例如:char str[10];2.初始化(1)与数值数组相同char str[3]={‘A’,‘B’,‘C’}

2022-04-13 21:39:41 2143 1

原创 max函数与min函数(数的大小比较)

一、运用max函数来进行数的大小比较:1.两个数 float a; float b; cin >> a >> b; cout << max(a, b) << '\t'<< min(a, b) << endl;#include<algorithm> //max,min的头文件2.三个数#include<iostream>#include <algorithm>us

2022-04-12 20:02:45 4405

原创 宏定义详细知识点

一、不带参数的宏定义1、格式:#define 宏名 字符串例:#define a 6则a是宏名,凡是出现a的地方均用6替换2、注意:宏替换是一种机械替换;不做语法检查,不是下一个语句,其后不加";"#define命令出现在函数的外面,有效范围是定义处到本源文件结束,可以用#undef命令终止作用域。进行宏定义时可以用已经定义的宏名,进行层层叠换。对程序中双引号括起来的字符串内,即使与宏名相同,也不进行置换。#define a 3int fun(){..

2022-04-11 17:25:13 4506

原创 字符串数组统计各类元素的个数

统计出字符数组中英文字母、数字、空格和其他字符的个数

2022-04-11 16:26:01 3753 1

原创 斐波那契数列详解

递归计算斐波那契数列第n个位置上的值

2022-04-09 23:26:17 1378

原创 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。它在第N次落地时反弹多高?共经过多少米? 保留两位小数

用循环解决问题。

2022-04-08 22:25:54 2411

原创 中缀表达式转换成后缀表达式知识简介 求3+4/(25-(6+15))*8的后缀表达式

求3+4/(25-(6+15))*8的后缀表达式详细方法

2022-04-07 21:40:37 966

原创 判断一个数是否是素数

C++中判断一个数是否是素数的方法

2022-04-06 20:41:58 1577

空空如也

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

TA关注的人

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