自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言——详解结构体内字符型数据定义与初始化

在C语言中,结构体内的字符型数据可以通过多种方式进行定义,并且每种定义方式都有其对应的初始化方法。这些定义方式包括直接定义字符数组、使用字符指针以及结合结构体的不同定义风格。

2024-07-22 17:28:54 695

原创 C语言——初识结构体定义与使用

C语言中的结构体(Struct)是一种复合数据类型,它允许你将不同类型的数据项组合成一个单一的类型。结构体在C语言中非常有用,特别是在需要处理复杂数据时

2024-07-22 16:49:38 186

原创 C语言——字符串查找strchr和strstr和字符串分割strtok

C语言中的strchr、strstr和strtok函数在字符串处理中扮演着重要角色。strchr用于查找字符串中首次出现的指定字符,返回指向该字符的指针;strstr则用于查找字符串中首次出现的指定子串,同样返回指向该子串起始位置的指针。而strtok函数则用于根据指定的分隔符集合来分割字符串,通过连续调用并传入NULL作为第一个参数来遍历分割后的所有子串,它修改原始字符串以插入字符串结束符\0。

2024-07-22 14:13:12 421

原创 C语言——字符串比较函数strcmp和strncmp

C语言中的字符串比较函数strcmp和strncmp用于比较字符串的内容,但它们在比较的范围和用途上有所不同。

2024-07-22 11:30:46 1007

原创 C语言——字符串拼接strcat及自实现代码

旨在探讨strcat函数的工作原理及其自定义实现的代码示例。C语言中,字符串拼接通常使用标准库函数strcat,该函数将两个字符串连接起来,即把源字符串(source string)连接到目标字符串(destination string)的末尾,并返回目标字符串的指针。自实现字符串拼接通常涉及遍历目标字符串以找到其末尾(即\0字符),然后将源字符串的每个字符(包括末尾的\0)逐个复制到目标字符串的末尾。

2024-07-22 10:29:48 524 2

原创 C语言——字符串:断言assert

在C语言中,assert是一个宏,用于在代码中设置断言(assertions)。断言是一种调试辅助工具,用于在代码执行过程中检查某个条件是否为真。

2024-07-22 10:29:45 183

原创 C语言——字符串的输出、获取和复制总结

在字符串复制时,目标字符串必须有足够的空间来容纳源字符串的内容,包括结尾的空字符,否则可能会导致缓冲区溢出,这是安全漏洞的常见来源。

2024-07-20 19:28:54 377

原创 C语言——(面试常见)字符串函数strcpy和strncpy函数的自现

在C语言中,strcpy和strncpy是处理字符串时常用的两个函数,但它们在处理字符串复制时的行为和安全性上有所不同。下面,我将简要介绍这两个函数的功能,并提供它们的自实现(即不使用标准库函数,自己编写实现这些功能的代码)。

2024-07-20 19:28:03 371

原创 C语言——动态开辟字符串的malloc、realloc、free和memset函数

在C语言中,malloc、realloc和free是处理动态内存分配的重要函数,它们定义在头文件中。常用的数组定义一般占用的是栈的内存空间,我们可以利用这些函数在堆上面动态开辟字符串,以节省内存空间。这些函数允许程序在运行时根据需要分配或调整内存的大小,并在不再需要时释放内存。

2024-07-20 16:10:18 916

原创 C语言——字符串中sizeof和strlen的辨析

在C语言中,sizeof 和 strlen 函数在处理字符串时有明显不同的作用和结果。使用不当很容易出现错误......

2024-07-19 15:53:04 456

原创 C语言——字符串两种声明初始化方式、输入输出及常见处理函数

C语言中的字符串是一个字符数组,它以空字符(\0)作为结束标志。这意味着字符串中的字符是连续存储在内存中的,而字符串的末尾会自动添加一个\0字符来表示字符串的结束。常见的字符串定义方式有两种:字符串常量和字符串变量,字符串常量不允许被修改......

2024-07-19 14:31:10 658

原创 C语言——详解二级指针及其与二维数组的误区、指针定义大全

C语言中的二级指针(也称为指针的指针)是指一个指针变量,它存储的不是普通的值,而是另一个指针的地址。这意味着你可以通过二级指针来访问和修改另一个指针的值。。

2024-07-19 11:11:47 837

原创 C语言——指针数组、指针函数

一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都存放一个地址,相当于一个指针变量。C语言中的指针函数(Pointer to Function)是一种特殊的函数类型,它执行某些操作后返回一个指针,这个指针可以指向任何有效的数据类型,包括基本数据类型(如int、float等)、数组、结构体、甚至是另一个函数(但通常不这样做,因为函数名本身就代表了函数的地址)。

2024-07-18 12:05:13 803

原创 C语言——函数指针

C语言中的函数指针是一种特殊类型的指针,它指向一个函数而不是变量。通过函数指针,你可以在运行时决定调用哪个函数,这增加了程序的灵活性和模块化。函数指针在回调函数、中断服务例程、实现策略模式等方面非常有用。

2024-07-17 17:51:15 260

原创 C语言——数组指针

数组指针是指向一个数组的指针。在C语言中,数组名在大多数情况下会退化为指向其首元素的指针,但这并不直接等同于数组指针。

2024-07-17 15:36:53 363

原创 C语言——详解二维数组中元素的地址

在C语言中,二维数组元素的地址认知是一个相对复杂但重要的概念。

2024-07-17 14:45:50 841

原创 C语言——练习:将数组中的n个元素按逆序存放

由于数组是连续存储的,我们可以通过交换数组两端对应位置的元素来实现逆序。具体来说,我们可以遍历数组的一半(对于偶数长度的数组)或稍微超过一半(对于奇数长度的数组,但通常我们会停在中间,因为中间的元素在逆序后仍然在其原始位置),并在每次迭代中交换两端的元素。

2024-07-17 11:07:10 424

原创 C语言——指针引用数组,数组指针使用方式的见怪不怪

在C语言中,数组名本质上是一个指向数组首元素的指针。因此,通过指针来引用数组是非常自然和常用的操作。这里我们将探讨几种使用指针来引用和操作数组的方法。

2024-07-16 20:37:57 486

原创 C语言——为什么使用指针,指针的应用场景有哪些

在C语言中,使用指针的原因是多方面的,它们为程序员提供了直接操作内存的强大能力,同时也促进了代码的效率、灵活性和可重用性。

2024-07-16 18:11:01 525

原创 C语言——指针简介及基本要点

指针变量本质上也是一个变量,包含变量类型,变量值,变量地址,变量名四个要点。指针变量与其他变量不同的地方是,指针变量的值是一个地址,我们把指针变量称为指向其保存的地址的指针。而指针变量本身也有一个地址,此时如果有另一个变量b保存的是这个指针a的的地址,那么这个变量b也是指针变量,且是二级指针。指针变量存储的是变量的内存地址,而不是变量的值。

2024-07-16 17:14:52 392

原创 C语言——局部变量和全局变量

在C语言中,变量可以根据其作用域(即变量在程序中的可访问范围)和存储期(即变量的生命周期)被分为不同的类型。其中,局部变量和全局变量是两种基本且重要的分类。

2024-07-16 16:09:25 381

原创 C语言——二维数组作为函数的参数,求二维数组的最大值

在C语言中,二维数组可以通过两种方式作为函数参数传递:直接传递数组名称或使用指针的指针。直接传递时,可以省略第二维的大小,但需要指定第一维的大小,且编译时不会检查第一维大小。使用指针的指针则更灵活,允许修改指向数组的指针,适用于动态分配的数组,并需要手动管理内存。此外,示例代码展示了如何创建一个三行四列的二维数组,初始化数组元素,打印数组,并求数组中的最大值。代码中使用了`%-5d`格式化输出,以左对齐方式打印整数,每个数字至少占据5个字符宽度,不足部分用空格填充,以提高输出的美观性。

2024-07-16 13:18:26 333

原创 C语言——练习:登记学生成绩并计算平均成绩

2.平均成绩使用浮点数进行表示,则进行变量定义的时候应该定义为浮点型变量。且进行输出是也应该使用%f进行输出,同时在计算时使用(float)强制转换,把两个整数相除结果转换为小数。1.自定义函数时,不同类型形参之间应使用,而不是;登记两个班级学生的成绩,并计算平均成绩。

2024-07-16 11:48:24 176

原创 C语言——简述数组作为形参和实参在函数中的传递

在C语言中,当数组名作为函数参数被调用时,它并不传递整个数组本身,而是传递数组首元素的地址。这是因为数组名在大多数情况下(除了作为sizeof操作符的操作数或作为&操作符的操作数时)会被解释为指向数组首元素的指针。

2024-07-14 12:08:17 348

原创 C语言——递归函数之计算阶乘

递归函数是一种在函数体内调用自身以解决问题的特殊函数。它通过不断将问题分解为更小的相同类型的问题,直到达到一个可以直接解决的基准情形(基本情况),从而逐步解决整个问题。递归函数通常包含基准情形(用于防止无限递归的出口)和递归步骤(函数调用自身以缩小问题规模的部分)。

2024-07-14 10:56:16 336

原创 C语言——二维数组

二维数组可以视为表格或矩阵,其中每个元素通过行索引和列索引定位。在C语言中,二维数组通过嵌套的for循环遍历,外层循环遍历行,内层循环遍历列。访问二维数组元素时,需确保索引在有效范围内,避免越界。二维数组常用于存储和处理表格数据,如矩阵运算、图像处理等。通过嵌套循环,可以方便地遍历二维数组,执行查找、排序、求和等操作。

2024-07-13 14:57:24 344

原创 C语言——冒泡排序法与简单选择排序法及其区别

它通过两层嵌套的循环来实现:外层循环控制排序的总轮数,内层循环负责在每轮中进行实际的元素比较和交换。每完成一轮内层循环,数组中的最大元素就会“冒泡”到它应该在的位置上,因此外层循环每次迭代时,内层循环的迭代次数可以相应减少。是一种简单直观的排序算法。它的工作原理是:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。

2024-07-13 13:25:53 741 2

原创 C语言——数组、sizeof关键字

C语言中的数组是一种基本的数据结构,用于在计算机内存中连续存储相同类型的数据。数组中的每个元素可以通过索引来访问,索引通常是一个整数,用于指定元素在数组中的位置。在C语言中,数组索引是从0开始的。要使用数组,必须在程序中先定义数组,即通知计算机:由哪些数据组成数组,数组中有多少元素,属于哪个数据类型。否则计算机不会自动地把一批数据作为数组处理。

2024-07-13 11:07:53 850

原创 MLP简介

定义:MLP是一种前馈神经网络,由多个神经元层组成,包括输入层、一个或多个隐藏层以及输出层。每一层的神经元都与下一层的所有神经元全连接,通过权重和偏差进行信息传递。结构:MLP至少包含三层网络结构,即输入层、隐藏层(可以有多个)和输出层。输入层负责接收原始数据,隐藏层负责对数据进行中间特征的提取,输出层则负责输出最终的预测结果。

2024-07-13 09:54:53 308

原创 C语言——练习:水仙花数、n次幂值的计算

水仙花数是一个N位正整数(N≥3),其每个位上的数字的N次幂之和等于该数本身。例如,153是一个三位数的水仙花数,因为1^3 + 5^3 + 3^3 = 153。对于大多数应用,如果你需要处理的是整数幂且数值不是特别大,使用循环(特别是快速幂算法)是一个很好的选择。如果你需要处理浮点数或者需要更复杂的数学运算,使用<math.h>库中的pow函数可能更方便。对于非常大的整数,考虑使用专门的大数库。

2024-07-12 17:53:13 681

原创 C语言——练习:求最大公约数(GCD)和最小公倍数(LCM)

该算法的基本思想是:gcd(a, b) = gcd(b, a mod b),其中a和b是两个正整数,gcd代表最大公约数,mod代表取余运算。算法一直递归进行,直到b为0,此时a即为两数的最大公约数。简单来说,计算的流程为:首先a%b,余数为c,如果c!= 0,则a = b,b = c,继续循环操作,直至a%b,余数为0,此时的b即为最大公约数。1.a

2024-07-12 17:53:02 616

原创 C语言——函数、形参与实参、局部变量

printf("欢迎来到我的代码\n");int fuctWithData(int x) //形式参数,需要包含变量类型、变量名int y;y = x-1;return y;int y;printf("请输入一个数:");return 0;

2024-07-11 17:46:11 775

原创 C语言——循环结构:while、do...while、for

循环是一种非常强大且灵活的循环控制结构,它允许你指定初始化表达式、循环条件以及每次循环迭代结束时执行的更新表达式。循环是一种基本的循环控制结构,它允许程序重复执行一段代码块,直到指定的条件不再满足为止。:确保在循环体内部更新条件表达式中使用的变量,以避免无限循环。循环至少会执行一次循环体内的代码,即使初始条件为假。循环的条件检查是在循环体的末尾进行的,而不是在循环体的开始。语句跳过循环体中剩余的代码,直接进入下一次循环的条件判断。:在循环开始前初始化所有在条件表达式中使用的变量。循环将变成无限循环。

2024-07-11 14:05:31 746

原创 C语言——流程控制:if...else、switch...case

printf("请输入一个字母:\n");if(65 <= cdata && cdata <= 90){ //判断输入是否是大写字母printf("它对应的小写字母是:%c",cdata+32);}else if(97 <= cdata && cdata <= 122){ //判断输入的是否是小写字母printf("它本来就是小写字母:%c",cdata);}else{printf("你输入的不是字母\n");return 0;

2024-07-11 10:25:34 443

原创 C语言——printf、scanf、其他输入输出函数

把其后的字符'h'送给字符变量b,由于%c只要求输入一个字符,系统判定该字符已输入结束,因此输入字符'h'之后不需要加空格。其 中:d代表十进制整数、c代表单个字符、s代表多个字符、f代表小数、x代表以十六进制格式输出、p代表打印内存地址,也是十六进制格式输出,输出地址使用取变量地址运算符号&。如果在“格式控制字符串”中除了格式声明以外还有其他字符,则在输人数据时在对应的位置上应输人与这些字符相同的字符。与printf函数中的格式声明相似,以%开始,以一个格式字符结束,中间可以插入附加的字符。

2024-07-10 13:20:36 862

原创 C语言——基础框架、变量、运算符

简单来记,操作系统(Windows、Linux)中整型数就是整数(4个字节=32位)、浮点类型就是小数(float:4个字节=32位)、字符型就是ASCII码(char:1个字节=8bit)(可以用整数来表示)命名方法:顾名思义,使用英语命名。在单片机中,整型数为2个字节=16位,即其最大可表示的数为2的16次方即65536。由字母数字下划线组成,且只能以下划线或者字母开头,不能以数字开头,区分大小写。四个特征:变量名、变量值、存储单元、变量类型;变量:强调的是变化,程序运行过程中其值会变化。

2024-07-09 15:30:55 250

原创 C语言入门——程序、开发环境搭建

数据结构:对数据的描述,包括数据类型(整型、浮点型、字符型、复合型:结构体和数组等)、组织方式(链表、树、图等)。算法:对操作的描述,要求计算机的操作步骤对数据产生作用(逻辑型、数学数据型(算法工程师))。(3)高级语言——结构化语言(面向过程—C)、面向对象语言(C++、Java、PHP、C#)常规工具:Vscode、devc++、啊哈C、Vc++、turboC。程序怎么来:编程—>编译(预处理、编译、汇编、链接)—>执行。进程:是一个动态的概念,通俗来说就是跑(运行)起来的程序。程序=算法+数据结构。

2024-07-08 14:32:55 204

原创 MAPF、多智能体、神经控制微分方程、交通状态估计

定义:MAPF是一类寻找多个智能体从起始位置到目标位置且无冲突的最优路径集合的问题。复杂性:随着智能体数量的增加,问题的状态空间会指数增长,因此MAPF已被证明是NP-hard问题。MAPF是一个重要的研究领域,涉及多个学科的交叉融合。随着人工智能和自动化技术的不断发展,MAPF将在更多领域得到应用和发展。通过不断优化算法和技术手段,MAPF将能够解决更复杂、更实际的问题,为人类的生产和生活带来更多便利和效益。

2024-07-05 13:20:49 823

原创 时空异质性和非平稳性、图的拓扑结构、图小波变换与图傅里叶变换

时空异质性主要关注时空数据在分布上的不均匀性和复杂性,反映了不同空间位置或时间点上变量的特征或关系的显著差异。时空非平稳性则关注时空数据的统计特征随时间和空间的变化情况,要求我们在分析和建模时必须考虑这种变化。这两个概念在时空数据分析和建模中具有重要作用,对于揭示数据中的复杂模式和关系具有重要意义。图的拓扑结构是指图中各元素(如顶点、边)之间的连接关系,而不考虑元素在几何空间中的具体位置或形状。在图论中,一个图(Graph)是由顶点(Vertex)和边(Edge)组成的集合,其中边连接两个顶点。

2024-07-03 15:03:32 729

原创 强化学习、Actor-Critic Network、Deep Q-Network (DQN)、梯度下降、softmax函数

定义:强化学习是一种让计算机程序或机器人通过与环境的互动学习,以便在未来的相似环境下更好地做出决策的技术。核心思想:通过奖励和惩罚来指导学习过程,使智能体逐渐学会如何在环境中取得最大化的利益。基本元素智能体(Agent):通过反复试验学习并做出决策的实体,它从周围环境中获得奖励和惩罚。环境(Environment):虚拟的世界,用于智能体通过与其交互来学习。状态(State):对环境的完整描述,智能体根据当前状态选择行动。行动(Action):智能体在特定状态下采取的行为。奖励(Reward)

2024-07-02 15:00:48 530

工程伦理分析PPT-大众汽车排放门事件

本PPT资源深入剖析了大众汽车排放门事件的工程伦理层面,全面展示了该事件从曝光到后续处理的整个过程,以及它对企业、行业、社会乃至全球汽车排放标准的深远影响。 PPT开篇即概述了大众汽车排放门事件的背景,指出大众汽车在部分柴油车型上安装了作弊软件,以在排放测试中达到合规标准,但在实际行驶中却大量排放污染物。这一行为严重违反了环保法规,也违背了企业的社会责任和工程伦理原则。 随后,PPT详细分析了事件的技术原理,即如何通过软件算法识别车辆是否处于检测状态,并据此调整发动机运行模式以降低排放。这一技术虽然短期内帮助大众通过了排放测试,但从长远看,却严重损害了公众健康和环境利益。

2024-07-12

机器视觉-传统相机标定法、线性求解P矩阵代码

本资源聚焦传统相机标定法及其核心步骤之一的线性求解P矩阵(投影矩阵)的Matlab代码实现和一份实验报告。相机标定是计算机视觉中一项基础而重要的任务,旨在通过特定方法确定相机的内部参数和外部参数,以实现图像坐标与世界坐标之间的精确映射。 报告中详细介绍了传统相机标定法的原理。此外,特别强调了线性求解P矩阵的方法,如直接线性变换(DLT)算法,这是一种基于线性代数原理的求解方法,能够直接通过多组对应点计算得到相机的投影矩阵。 在代码实现部分,资源提供了MATLAB编程语言的示例代码,展示了如何应用DLT算法或相关库函数求解P矩阵。这些代码不仅包含了基本的矩阵运算和算法实现。

2024-07-12

机器视觉-双目测量、极线表示、基本矩阵求解代码

本资源为机器视觉领域中的双目测量技术,提供了相应的代码实现和实验报告。双目测量是计算机视觉中的一种重要技术,通过模拟人眼双目视觉系统,利用两个相机从不同角度拍摄同一场景,通过计算两个相机图像中的对应点来获取物体的三维信息。 对于双目相机系统,一个相机图像中的任意一点在另一个相机图像中的对应点必定位于一条直线上,这条直线被称为极线。 资源提供了实验报告包括求解基本矩阵的方法以及具体的求解步骤。同时,资源还提供了相应的代码实现进行基本矩阵的求解。

2024-07-12

空空如也

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

TA关注的人

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