
学习
别问!问就是菜
坚持坚持坚持!干!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二维数组逐行和逐列遍历效率
按行遍历效率高首先数组在内存中是按行存储的,按行遍历时可以从数组首元素地址一直走下去,就可以遍历完整个数组,而按列遍历则需要每次指向每一列的第n行元素;但是指针寻址很快,所以并不会有明显的区别;那么到底按行遍历比按列遍历效率高在哪里呢?1:CPU高速缓存CPU高速缓存是用于减少处理器访问内存所需平均时间的部件。在金字塔存储体系中位于第二层,仅次于CPU寄存器;其容量远小于内存,但是速度却可以接近处理器的频率。当处理器发出访问请求时,会先查看缓存内是否有请求数据,如果存在(命中),则直接返回数转载 2020-10-11 19:40:30 · 1928 阅读 · 0 评论 -
C++ list与vector的区别总结
vectorvector和数组类似,它拥有一段动态连续的内存空间,因此它能非常好的支持随机存取(即使用[]操作符访问其中的元素),但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝(复杂度是O(n)),另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率。vector介绍与实现vector模拟实现listlist是由数据结构中的双向链表实现的,因此它的内存空间可以是不连续的。因此只能通过指针来进行数据的访问,这原创 2020-08-07 11:55:03 · 694 阅读 · 0 评论 -
C++ list深度刨析及模拟实现
1.list的介绍及使用1:list的介绍官方文档1:list是可以在常数范围内任意位置插入和删除的序列式容器,并且该容器可以前后双向迭代;2:list的底层是双向链表结构,双向链表的每个节点存储在互不相关的独立节点中,在节点中通过指针指向其前一个和后一个元素;3:list与forward_list非常相似:最主要的是forward_list是单链表,只能朝前迭代,以让其更简单高效;4:与其他序列式容器相比(array,vector,deque),list通常在任意位置进行插入,移除圆度的执行原创 2020-08-07 11:31:34 · 347 阅读 · 1 评论 -
C&C++内存管理
c&c++内存分布先来看下面的代码:int globalVar = 1; static int staticGlobalVar = 1; void Test() { static int staticVar = 1; int localVar = 1; int num1[10] = {1, 2, 3, 4}; char char2[] = "abcd"; char* pChar3 = "abcd"; int* ptr1 = (int*)mall原创 2020-07-31 21:06:23 · 169 阅读 · 1 评论 -
判断一个字符串是否为另一个字符串旋转后的字符串
题目判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 =AABCD和s2 = BCDAA,返回1给定s1=abcd和s2=ACBD,返回0.AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC解题思路:1:将一个字符串旋转一次比较一次,如果出现完全相同的返回12:旋转的最大次数就是字符串的长度3:左旋...原创 2019-11-24 19:19:52 · 379 阅读 · 0 评论 -
实现一个可以将字符穿左旋k位的函数
题目实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB解题思路:1:根据题目,要用函数实现,所以可考虑指针2:先考虑左旋一位,将第一位标记,从第二位开始往后每一位前移一位,然后将标记的第一位放在字符串最后一位3:左旋k位就将第二步执行k次代码如下:#include<stdio.h>#include<w...原创 2019-11-24 19:04:47 · 130 阅读 · 0 评论 -
c语言实现扫雷游戏
扫雷实现思路:(1):首先要有棋盘,(类似于上一篇博客中的棋盘)供玩家扫雷(2):那么需要几个棋盘呢?至少要一个吧(玩家可见的),然后,还要再有一个棋盘(玩家不可见的)来存储雷的位置信息(3):扫雷游戏中,到玩家输入的坐标处没雷是要显示其周围类的个数,所以要有一个计算周围雷个数的函数大概的结构就是这样了,具体流程还是在代码中说明依旧采用多文件格式首先是头文件game.h#ifn...原创 2019-11-03 22:26:08 · 692 阅读 · 1 评论 -
C语言实现简单三子棋
三子棋实现思路:其实三子棋就是五子棋的简易版,只是三子棋的棋盘较小(本例子中棋盘较小),判断输赢的逻辑比较简单,要实现三子棋:(1):显示棋盘,棋盘可以用二维数组表示;(2):实现人机对战,电脑落子的位置可以用随机数表示;(3):判断输赢(三子连珠),还要注意棋盘是否已满;(4):每下一步子显示棋盘的时候刷新界面(这个属于windows的命令,很有意思,有兴趣可以搜索一下);具体...原创 2019-11-03 21:46:12 · 263 阅读 · 0 评论 -
二进制数转为十进制数 c语言实现
二进制转十进制二进制转十进制原理如下十进制数除二 余数再除二 余数……1或者0 1 / 0然后结果就是余数从下至上的所有数。余数只可能是0 / 1.代码#include<stdio.h>#include<math.h>int main(){ int a[10] = {1,0,0,1,0,1,1...原创 2019-10-30 22:51:33 · 1894 阅读 · 1 评论 -
老生常谈 杨辉三角形 蓝桥杯 c语言实现
题目问题描述杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的前4行: 1 1 1 1 2 1 1 3 3 1要求: 给出n,输出它的前n行。输入格式输入包含一个数n。输出格式输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个...原创 2019-10-30 22:25:37 · 600 阅读 · 0 评论 -
实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表。
#题目:实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出99口诀表,输入12,输出1212的乘法口诀表。代码:#include<stdio.h>#include<windows.h>#pragma warning(disable:4996)void multiplication(int n)//子函数{ int i = 0, j = 0...原创 2019-10-21 22:41:24 · 193 阅读 · 0 评论 -
折半查找,在有序数列中查找指定值(也叫二分法查找)
#折半查找折半查找的思想:每次与数列中间值进行比较,小于中间值就与前半部分的中间值比较,大于就与后半部分的中间值比较,直至剩最后一个数。代码:#include<stdio.h>#include<windows.h>#pragma warning(disable:4996)int bin(int A[],int left, int right, int key)/...原创 2019-10-17 19:55:47 · 694 阅读 · 0 评论 -
c语言实现简单猜数字游戏
#题目计算机随机生成一个数,用户来猜,程序只会提醒大了还是小了,直至猜出答案程序结束。代码:#include<stdio.h>#include<windows.h>#pragma warning(disable:4996)#define USER "wang"//定义用户名和密码#define psd "456123"//游戏开始界面void J(){ ...原创 2019-10-17 19:45:53 · 1641 阅读 · 1 评论 -
错题总结(2)求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字, 例如:2+22+222+2222+22222
#题目求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222思路:首先求出数列的每一位数值,然后求和就好了之前的错误在代码中标明#include<stdio.h>#include<windows.h>#pragma warning(disable:4996);int ride(int n ,...原创 2019-10-15 16:32:44 · 417 阅读 · 0 评论 -
错题总结(1)水仙花数
#题目:在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数:153 = 1^3 + 5^3 + 3^3。370 = 3^3 + 7^3 + 0^3。371 = 3^3 + 7...原创 2019-10-15 16:15:54 · 268 阅读 · 0 评论 -
关于stdio.h中四种常用方法gets(),getchar(),puts().putchar()的总结
#gets函数功能:从缓冲区读取一个“字符串”存储到字符指针变量str指向的内存空间例如:#include<stdio.h> int main() { char str[20];//定义字符数组 printf("输入字符串:\n"); gets(str);//调用gets()函数 printf("%s",str); ret...原创 2019-10-13 22:49:12 · 1493 阅读 · 0 评论 -
c语言求最大公约数的三种方法
##一:辗转相除法(最常见的一种方法)公式:gcd(i,j) = i;(b = 0)思路:(1)判断两数大小,如果i > j;直接进行下一步;若i < j;交换两数值;(2)i 对 j 求余,如此循环,直至 j = 0;(3)返回 i 的值,此时 i 即为最大公约数。代码如下:#include<stdio.h>#include<windows.h>...原创 2019-10-03 13:28:15 · 14550 阅读 · 0 评论 -
学习规划
初来乍到本人是来自工程大的一名大三学生,就读于软件工程专业,学习过C语言以及JAVA,但是总感觉编程能力不好,因此注册这个博客,用来记录以后在编程方面的学习进程。一:编程目标对编程过程中的各种语句足够熟练对常用的几种数据结构和算法做到精通并能灵活运用可以针对不同的题目设计合理的数据结构以及高效正确的算法代码简洁明了,有结构性二:怎么学习理论知识与实践能力同步提升,在通过阅读各种资料...原创 2019-09-28 11:24:30 · 199 阅读 · 0 评论