![](https://img-blog.csdnimg.cn/20201114234901889.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
文章平均质量分 71
本栏文章皆为个人学习笔记和实践所得,欢迎大家参考学习,如有不妥之处欢迎留言交流,定当认真修改。
FifthDesign
愿我们,都有可以自由支配的时间。
展开
-
你还在程序中使用hello world来打印log?
仔细一想,这话说得十分中肯,也确实正确,掐指算算我的码龄,也确实该把打log的方式给统一 一下了,但是请注意,本篇文章仅从最实用的角度来介绍一下打印log的方式,当然还有更专业的,这里暂不涉及。因为没有把握住输出log的时机,有的甚至在循环里不停的输出无关简要的log,或者是每写一句话就输出一句log,那最终的结果当然是log满天飞,没一个重要的。同时,如果一个项目是分工合作的,当项目出问题时,还能拿出Log证明自己负责的部分没有问题,即使是自己的问题,也能从Log里快速找出错误原因。原创 2022-10-03 17:56:55 · 985 阅读 · 2 评论 -
关于VisioStudio2022安装后E1696问题的解决
确认完毕后进行勾选,比如Win11操作系统一定要勾选win11的SDK,然后点击右下角的修改,这个时候会进入下载界面,VisioStudio会重新启动,启动完毕后再次运行就可以了。如果你是项目移植,那么查看一下这个SDK是不是和项目移植前一致,如果你是Win11操作系统,查看一下Win11的SDK是不是没有勾选;1.相同操作系统SDK版本的不匹配。2.不同操作系统SDK的不匹配。原创 2022-10-03 11:49:02 · 3391 阅读 · 0 评论 -
枚举类型_C++
C++的enum工具提供了一种创建符号常量的方式(还有宏定义和const限定符),这种方式可以代替const和宏定义,它还允许定义新类型,但必须按严格的限制进行,使用enum的句法与使用结构体相似运行结果为上边那条声明语句完成两项工作1.让spectrum成为新类型的名称,此时spectrum被称为枚举(enumeration)类型,就像struct变量被称为结构类型一样。httpshttpshttps。...原创 2022-07-20 19:19:28 · 724 阅读 · 0 评论 -
共用体的使用_C++
共用体(union)是一种数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型。也就是说,结构可以同时存储int、long和double,但共用体只能存储int、long或double。共用体的句法与结构相似,但含义不同。};};运行结果如下这样看可能看不出什么深度,那么我们这么看结果如下这一组数据只有圈出来的几个是有意义的,因为共用体的中的变量共用的是一块儿内存空间,一个时间里只能使用一个,其他的数据全部无效。httpshttpshttps。......原创 2022-07-17 18:31:31 · 1313 阅读 · 0 评论 -
字符函数库cctype的使用_C++
以上就是今天要讲的内容,本文仅仅简单介绍了cctype的使用,如有不足欢迎指出。原创 2022-07-16 08:42:39 · 3396 阅读 · 0 评论 -
引用传递_C++
Clang-Tidy: The const qualified parameter 'str' is copied for each invocation; consider making it a reference原创 2022-07-15 08:34:33 · 2168 阅读 · 0 评论 -
C++实用异常
(1)问题描述在异常抛出领域,刚开始很难记得清楚都要抛出什么错误,不如就简单的抛出一下自己设定的提示语句,也就是说执行到某一句如果出错,简单抛出提示语句,继续执行后边的内容。(1)源代码这里简单用了几个文件分开写了一下。circle.hcircle.cppmain.cpp(2)运行结果(3)代码分析注意,这里我加了一个计算函数运行时间的函数 GetTickCount(),单位以ms计算。......原创 2022-07-06 08:38:20 · 295 阅读 · 0 评论 -
循环与关系表达式简单练习_C++基础
关于循环与关系表达式的简单练习目录关于循环与关系表达式的简单练习1. 计算两个整数之间所有整数的和1. 计算两个整数之间所有整数的和(1)问题描述编写一个要求用户输入两个整数的程序,该程序将计算并输出这两个整数之间(包括这两个整数)所有整数的和。如用户输入7和9,则返回的结果是24;(2)问题分析因为要计算所有数的和,因此选用循环作为程序结构,那么选择选择哪种循环呢?因为起始条件和终止条件都和明确,所以用for循环最恰当;(3)代码解答#include <iostream>us原创 2022-03-26 21:39:56 · 1222 阅读 · 0 评论 -
关于数组、vector对象和array对象的区别与联系_C++
关于数组、vector对象和array对象的区别与联系目录关于数组、vector对象和array对象的区别与联系一、区别与联系二、代码验证三、运行结果四、结果分析五、关于vector对象和array对象对非法索引的管理一、区别与联系1.无论是数组,vector对象还是array对象,都可以用标准数组表示法来访问各个元素;2. array对象和数组存储在相同的内存区域(栈),而vector对象存储在另一个区域(堆);3. array对象可以赋值给另一个array对象,而数组必须逐元素进行复制数据;原创 2022-03-20 17:44:27 · 1440 阅读 · 0 评论 -
C++多文件编程是什么
C++多文件编程是什么原文写的实在是太好了,心生敬意,拿过来收藏一下,这里是源文章地址:C++多文件编程是什么在以往的程序编写中,我们都是将所有的代码写到一个源文件里面,例如:main.cpp//main.cpp#include <iostream>using namespace std;class Student{public: char *name; int age; float score; void say(){ cout&转载 2022-03-06 23:44:36 · 472 阅读 · 0 评论 -
C/C++中局部/全局变量初始值或默认值问题
C/C++中局部/全局变量初始值或默认值问题原文写的实在是太好了,心生敬意,拿过来收藏一下,这里是源文章地址:C/C++中局部/全局变量初始值或默认值问题目录C/C++中局部/全局变量初始值或默认值问题一、初始化的语法二、默认初始化规则三、静态和全局变量的初始化四、成员变量的初始化五、封闭类嵌套成员的初始化在C语言中的全局变量和静态变量都是会自动初始化为0,堆和栈中的局部变量不会初始化而拥有不可预测的值。 C++保证了所有对象与对象成员都会初始化,但其中基本数据类型的初始化还得依赖于构造函数。 下文来转载 2022-03-06 20:35:14 · 6576 阅读 · 0 评论 -
关于C++的extern关键字
关于关于C++的extern关键字原文写的实在是太好了,心生敬意,拿过来收藏一下,这里是源文章地址:关于C++的extern关键字这里写目录标题关于关于C++的extern关键字一、extern关键字的作用二、extern关键字的用法三、其它参考一、extern关键字的作用文件中定义的全局变量的可见性扩展到整个程序是在链接完成之后,而在编译阶段,他们的可见性仍局限于各自的文件。编译器的目光不够长远,编译器没有能够意识到,某个变量符号虽然不是本文件定义的,但是它可能是在其它的文件中定义的。虽然编译转载 2022-03-06 19:56:29 · 217 阅读 · 0 评论 -
约瑟夫问题(算法设计与C代码实现)
约瑟夫问题看到了这里,想必大家都已知道约瑟夫问题,这里就不多赘述,只是简单回顾一下问题的描述。“据说著名犹太历史学家Josephus有过以下的故事: 在罗马人占领乔塔帕特后,39个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止,然而Josephus和他的朋友并不想遵从,Josephus要他的朋友先假装遵从,他将朋友与自己原创 2022-02-28 10:05:38 · 1232 阅读 · 1 评论 -
排序算法_快速排序(算法设计与C代码实现)
快速排序算法快速排序算法简单来说就是在用一种“二分”的思想去挪数字,先找一个数,然后所有比它大的数放其右边,所有比它小的数放其左边,重复此过程直到排序完成。目录快速排序算法一、问题描述二、问题分析三、代码实现四、运行结果五、算法解析六、BUG记录一、问题描述 将一个数组中的数字进行排序处理,并返回一个排好序的新数组。二、问题分析算法:排序算法_快速排序步骤:(1)需要先找一个数作为基准数,那么这个基准数如何设定原创 2022-02-10 13:15:51 · 621 阅读 · 0 评论 -
排序算法_冒泡排序(算法设计与C代码实现)
冒泡排序算法冒泡排序算法是排序算法中很实用的一种排序方式,其主要思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。目录冒泡排序算法一、问题描述二、问题分析三、代码实现四、运行结果五、算法解析六、BUG记录一、问题描述 将一个数组中的数字进行排序处理,并返回一个排好序的新数组。二、问题分析算法:排序算法_冒泡排序步骤:(1)要进行几轮冒泡?这个问题很多人觉得很烧脑,其实要进行几轮冒泡很好确定原创 2022-02-09 12:27:08 · 7635 阅读 · 0 评论 -
排序算法_桶排序(算法设计与C代码实现)
桶排序算法桶排序算法是排序算法中最简单的一种排序方式,其主要思想是:若要对数字2,6,4,4,6,8进行排序,需要设置一个排好序的8个桶,然后将数字逐个丢进对应的桶中。按桶的顺序逐个捡起数字后,数字也就排好序了。道理都很简单,这里着重使用C语言对此算法进行重现。目录桶排序算法一、问题描述二、问题分析三、代码实现1. 获取数组中的最大值2. 获取数组的长度四、源码五、算法评价六、BUG记录一、问题描述 将一个数组中原创 2022-02-05 22:08:38 · 762 阅读 · 0 评论 -
K_均值聚类算法(算法设计与C代码实现)
K-means算法就像扔进铁砂中的几颗磁石,它们在其中不停的滚啊滚啊滚啊,当你蓦然回首,发现铁砂里只剩下了几团黑球……原创 2021-12-17 17:51:07 · 1686 阅读 · 0 评论 -
单向链表的创建、访问、插入、删除——C语言基础
单向链表的创建、访问、插入和删除操作前言:本文是前几篇文章的综合,只有代码没有解析,如有需要请根据文章尾部的链接进行查看详细模块代码部分:(1)main.c#include "creat.h"#include "output.h"#include "insert.h"#include "delete.h"int main(){ struct stu *head; head = creat(); list(head); int m; printf("原创 2021-07-22 08:30:35 · 226 阅读 · 0 评论 -
在单向链表中删除节点——C语言基础
向单向链表中删除指定的节点前言:从链表中删除一个节点与插入一个节点类似,关键在于查找,但需要注意的是,删除一个节点 并不是真的删除了,而是将需要删除的节点从链表中分离出来,最后将这个结点用free函数释放掉。文章目录向单向链表中删除指定的节点一、问题描述二、算法描述一、问题描述给出一个学号,删除单向链表中学号与之相等的节点二、算法描述1. 输入数据;2. 在链表中匹配该数据所对应的节点;3. 撤销此节点原来的链接关系;4. 释放该节点。注意:此算法中的第二步可分为多种情况,具体如下:原创 2021-07-22 08:15:06 · 1871 阅读 · 0 评论 -
在单向链表中插入节点——C语言基础
向单向链表插入节点前言:链表的插入过程就是把新建的节点插入到已有的链表中,鉴于此种理解,也可以把链表的创建看做是一种特殊的插入节点过程,但是具体来说,链表的插入较于链表的创建来说稍复杂一些。一、问题描述 编写函数,将一个节点插入到一个已有学生链表中,设已有链表按学号有小到大顺序已经排列。二、算法描述(1) 输入数据(2) 生成新节点(3) 将数据存入新节点(4) 在链表中寻找第一个大于新节点的学号注意:该算法的难点是第四步——在链表中寻找第一个原创 2021-07-21 20:23:16 · 5303 阅读 · 1 评论 -
编译预处理——文件包含
编译预处理&文件包含前言:C语言中为了实现程序功能,经常使用的三类语句分别是声明语句、执行语句和编译预处理语句,所谓的编译预处理就是在对源程序进行编译之前,先对源程序的编译预处理命令进行处理,然后再将出列的结果和源程序一起进行编译,得到目标代码,具体的过程可理解如下:本文着重对编译预处理进行记录,并分别对编译预处理的宏定义、条件编译和文件包含进行说明。本文目录:编译预处理&文件包含一、宏定义(1)无参宏定义(2)带参宏定义二、条件编译(1) 一般形式1(2) 一般形式2(3) 一般形原创 2021-07-21 12:15:03 · 1158 阅读 · 0 评论 -
顺序访问链表中的节点——C语言基础
对链表中的节点进行顺序访问前言:对链表的访问具体包括修改、运算和输出,作为C语言基础,这里只对输出进行阐释一、算法描述用一个工作指针p遍历整个链表,直到链表的结束标志为止,如果链表为空,输出提示信息。二、代码讲解//顺序输出函数void list(struct stu *head){ struct stu *p; //构建一个遍历工作指针p p = head; //初始化 if(head != NULL){ printf("\nthe原创 2021-07-19 17:29:17 · 840 阅读 · 0 评论 -
C语言基础——单向链表的创建
单向链表的创建前言:链表的创建就是创建一个个节点并给节点输入数据,最后将节点按照一定逻辑关系组织起来的过程。一、主要算法(1)算法描述 1. 读取数据;2. 生成新节点;3. 将数据存入新节点;4. 将新节点插入链表中。(2)N-S流程图...原创 2021-07-19 16:56:35 · 1266 阅读 · 0 评论 -
内存动态管理——malloc函数、calloc函数和free函数
malloc、free函数的使用一、代码部分#include <stdio.h>#include <stdlib.h>int main() { float *pf; //数组名 int i, n; //数组的大小 printf("Please input the size of the array:"); scanf("%d",&n); pf = (float *) malloc(n*sizeof原创 2021-07-18 23:18:12 · 420 阅读 · 0 评论 -
结构体数组指针的妙用
利用指向结构体数组的指针快捷输出信息一、 代码部分#include <stdio.h>struct stu{ int num; char name[20]; char sex; float score;}boy[5] = { {101, "Zhou Ping", 'M', 45}, {102, "Zhang Ping", 'M', 62.5}, {103, "Liu Feng", 'F', 87},原创 2021-07-18 20:48:24 · 139 阅读 · 0 评论 -
征服C指针
征服C指针计划(2020.5.23——2020.7.30)001 对于指针变量p, 输出&p与输出p的区别:int main(){ int* p; int num = 1; printf("p的地址(未赋值):%p\n", &p); printf("num的地址:%p\n", &num); p = # printf("p的地址(赋值):%p\n", &p); printf("p的地址(赋值):%p\n", p); return 0;}原创 2021-05-23 16:27:58 · 360 阅读 · 0 评论 -
指针与二维数组——高阶指针入门
指针进阶——行指针与二维数组 注意,对高阶指针的学习具有两面性,一方面可以提高工作效率,但是如果认识不到位的话很可能会带来意想不到的麻烦,请慎重选择阅读。原创 2021-03-11 14:56:53 · 531 阅读 · 0 评论 -
C/C++内部的调用与被调用
主函数、头文件的调用与被调用一、主函数调用头文件这个就很简单了,直接在第一句写上#include"头文件名"就可以了,看下边例子:(1) main.c文件#include"001.h"int main(){ cout << "Hello,main" << endl; preview001();}(2) 001.h文件#pragma once#include<iostream>using namespace std;void preview原创 2020-12-02 21:47:18 · 1229 阅读 · 0 评论 -
C语言的基础实例应用——寻找符合条件的车牌
C语言的实例应用——根据已知条件找车牌已知条件 一、实例分析? 二、使用步骤 1.方案一(车牌筛选法) 2.方案二(车牌构造法) 总结已知条件一辆汽车违反交规,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字相同;乙说:牌照的后两位数字相同,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出四位车号。以下是我的个人见解,如有不足还望评论指出补充。一、实例分析...原创 2020-10-17 11:57:30 · 2945 阅读 · 1 评论 -
C语言的冒泡排序法,这么用才简单
初学C语言时总会对冒泡排序法的代码感到很迷茫,那么有没有更容易理解的方式去拿下“冒泡排序”呢?文章目录冒泡排序法简介 一、主要特点 二、使用步骤 1.教材上的代码 2. 改进后的代码 总结冒泡排序简介每趟不断将记录两两比较,并按“前小后大” 规则交换提示:以下仅为本人意见,如有不足欢迎留言指正一、主要特点巧妙避开数组第一位的取值,从而让冒泡排序的代码更便于理解二、使用步骤1.教材上的代码代码如下(C语言程序设计):#include..原创 2020-10-17 20:10:27 · 473 阅读 · 0 评论 -
一个好使简易的使数组逆序方法—C语言
输入一组数据,并将这组数据逆序输出文章目录涉及知识点 一、数组名与指针 二、操作过程 1.源代码 2.数据测试 总结涉及知识点数组名与指针的关系提示:如有不足之处,欢迎指正一、数组名与指针假如定义一个数组int num[N],和一个指针变量int *i,i=num;此时指针变量i和num都指的是数组的首地址,即&num[0],很容易可以看出,i+5是和num+5是等效的(这里举例随便取一个数5,明白那个意思就好),它们的关系..原创 2020-10-19 21:43:47 · 1186 阅读 · 0 评论 -
C/C++中关于int *p[n]、int(*p)[n]、int*p()和int(*p)()巨详细实例解释
关于int *p[n]、int(p)[n]、intp()和int(*p)()详细实例解释指针是C/C++语言中最精彩部分,话不多说,下边对这四种形式进行寻根问底,进行剖析。int *p[n];int(*p)[n];int*p();int(*p)();看似好像乱的不像话,但是它理解起来并没有那么难懂,注意注意,下边是正文部分。提示:要区分这四个的区别,可以从运算符优先级的层面来看差异,C语言中,[]和()的优先级比 * 的优先级高。一、int *p[n]根据优先级,int *p[原创 2020-10-23 00:17:30 · 9666 阅读 · 5 评论 -
C语言基础实例-用 * 号构造的小三角形
先看一下图形1. 解析是不是看起来超简单?事实上确实是这样,我们先看源码:#include<stdio.h>int main(){ int i, j, n; printf("请问想构建几行?\n"); scanf_s("%d", &n); for (i = 1; i <= n; i++) { for (j = 1; j <= n + i - 1; j++) { if (j <= n - i) printf(" "); else p原创 2020-10-23 12:13:00 · 5133 阅读 · 0 评论 -
C语言基础—把不大于5位的整数各位上数字的正序和逆序输出
整数的输出1.算法思想打印就是把数字信息展示在屏幕上,输入一个数据,可以正序打印,也可以逆序打印,如输入12345正序打印可以为1, 2,3, 4,5,逆序打印可以为5, 4,3, 2,1,处理这种问题方法很多,这里只讲一下我的方法(话不多说,先看代码):2.代码部分#include <stdio.h>#include <math.h>int main(){ int num,place,x; scanf_s("%d", &num); pla原创 2020-10-30 07:45:17 · 2330 阅读 · 2 评论 -
C语言基础实例应用—用Switch语句计算今天为这一年的第几天
计算今天为今年的第几天(Switch实现)输入三个数分别代表年、月、日,然后输出这一天为今年的第几天:1. 算法思想switch语句有一个典型的属性就是当不加break语句的时候它会一直执行下去,正是利用这一点编写下边的算法。2.代码部分#include<stdio.h>int main(){ int day, month, year, num = 0; scanf_s("%d%d%d", &year, &month, &day);原创 2020-10-30 08:25:57 · 5377 阅读 · 0 评论 -
C++贪心算法求解找零钱问题(很形象)
贪心算法求解找零钱问题1.什么是贪心算法?贪心算法是一种策略,总是做出在当前看来是最好的选择,总结出来几个字:寻找最优解举个例子来说就是:“有一个只能往前走的果园,里边有各种水果让你免费摘,免费摘嘛当然找值钱的摘,所以一开始你就直接选择最贵的石榴,石榴摘完后再摘哪个?看看前边有香蕉和葡萄,比较了一下摘了香蕉,香蕉过后继续往前走,然后摘了橘子……,最后一条路走下来了,你摘了石榴、香蕉、橘子、苹果、桃子,总价值为25元”,故事到此结束,当你抱着一堆25元钱水果回来的时候,你已经寻找到了最优解,贪心原创 2020-11-05 11:57:44 · 8912 阅读 · 4 评论 -
C语言用.h文件放置函数
用.h文件放置自己构造的函数这里用一个简单的动态创建数组的案例来讲解一下.h文件怎么创建:1.第一步当然是先看原始形态代码:#include<iostream>#include<malloc.h>using namespace std;int main(){ int* Malloc_Int(int n); int* q; int n; cout << "请输入需要创建的数组大小" << endl; cin >> n; q原创 2020-11-06 10:06:52 · 7424 阅读 · 3 评论 -
C语言构建的简单信息采集表
C语言基础练习-信息表制作这里主要用了两个知识点,结构体的应用和动态创建数组的应用1.先看看运行结果当然,我这个程序输入的有点琐碎,看完这篇文章后你可以改进一下,2.源代码部分cpp#include<iostream>#include<malloc.h>#include"002.h"using namespace std;int main(){ int n; cout << "请问要登记几人的信息:" << endl;原创 2020-11-06 11:35:51 · 415 阅读 · 0 评论 -
C语言基础实例—3句代码解决数字出现频率问题
三句代码求出数组内数字的频率看到这个标题,怎么,期待不?1.话不多说,直接看代码:#include<iostream>using namespace std;int main(){ int a[] = {1,1,2,3,5,4,2,5,4,3}; int t[6]; for (int i = 1; i < 6; i++) t[i] = 0; //要找的数字 for (int i = 0; i < 10; i++) t[a[i]]++; //如果a[i]=原创 2020-11-10 13:33:59 · 558 阅读 · 0 评论