9 coding-demo

尚未进行身份认证

喜欢编程是因为那种感觉

等级
博文 51
排名 10w+

编写自动测试c语言程序的shell脚本

目前经常用vim编写一些c语言程序,写好了程序一般都得进行一些测试,当然我们可以进行一些常规的手动测试。心里一想,如果能够用shell脚本编写一个能自动测试c语言程序就好了。为了试一试这样的想法,找了一个c语言程序题目:[一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?]根据这样

2015-07-10 23:22:14

Linux系统下学习正则表达式的心得

一直对正则表达式云里雾里的,今天认真的看了《鸟哥的linux私房菜》一书并在网络上查询了相关方面的资料,现在对正则表达式有了一定的了解。首先正则表达式指的是用特定的字符串来筛选符合一定要求的字符串,我们在Linux系统下经常用到的命令grep,这个命令时用来选取符合一定要求的字符串所在的一行,其实这个很简单,举个简单的例子,我们想在某个目录下去查找一下是否存在newfile这个文件,我们可以使

2015-07-05 21:36:51

使用MacBook air 11.6第一记

纠结了很长时间买到了我心仪的苹果笔记本电脑了,从之前在macbookpro和air之间的纠结发展到了后来的air11和air13之间的纠结,终于到了昨天我下了最后的决心,买了一台2015款的macbookair11。当时在买11的时候还是在犹豫的,犹豫怕拆封了看到11.6寸的小屏幕时候会后悔,但是还是下了狠心拆封了,打开了电脑,顿时觉得好像真的有点小。拿回了家,用着用着觉得11.6寸的屏幕感

2015-07-03 18:30:34

IP地址的转换

今天遇到一个题目:将十进制的IP地址转化成二进制,然后将二进制串起来成为32的数,再按照十进制将这个数读出来。这个问题有种解决方案:1.可以用乘法操作;2.可以用移位操作;3.可以使用联合体定义解决;下面我就移位操作和利用联合体来进行代码的编写:#includeusingnamespacestd;#defineCOUNT4unionIP{ str

2014-12-24 14:45:22

内存对齐总结

今天参加了入职前的小小的培训,培训中老师讲到了关于内存对齐的只是,以前接触过,但是没有深究,今天老师讲了,回来便查了查资料,下面便是我对内存对齐的理解。内存对齐对于大部分的软件工程师来说都可以说是透明的,内存对齐应该是编译器去管理的,C语言的特点就是强大灵活,他允许你对内存进行操作。如果你想对深层次的更加底层的东西要加以理解,就必须对内存对齐要有一定的了解。首先是为什么我们需要对内存对齐:

2014-12-15 21:34:43

windows下如何配置实现命令行编译c++程序

大家知道在linux下编译c++代码的那种命令式的编译方式,想不想在windows下实现这样的功能?今天我就使用了我的windows台式电脑和笔记本电脑实现了这样的命令式的c++代码的编译。首先你需要的工具就是:1.一台windows下的电脑(当然是安装了c++编译器的电脑)2.下载安装一个文本编辑器的软件(比如notepad等等)下面是实现这样的功能的具体的步骤:

2014-12-03 15:36:24

win7专业版激活方案

今天给我的台式机重装了win7系统,但是发现一个蛋疼的事情,就是不能正常激活win7系统了。我主要使用了一下几种激活电脑的方式:1.使用以前的激活程序进行系统的激活;2.使用学校购买的正版系统进行激活,这也遇到了问题,出现密钥不能使用的情形;3.在网上搜索能用的win7正版的密钥进行激活,但是还是不行;最后没有办法,就进行了百度寻找解决方案,发现一款激活工具还是比

2014-11-24 15:07:49

最短路径——floyd算法

上一篇博文中讲了Dijkstra算法,这次博文要讲解的是floyd算法,其中Dijkstra算法是属于贪心算法,而floyd算法是动态规划的一个算法:具体的算法如下:其中一个矩阵是用来存放最短路径的,另外一个矩阵是用来存放前驱顶点的;#includeusingnamespacestd;#defineMax5#defineInfinity65535voidma

2014-09-25 09:54:16

最短路径算法——迪杰斯特拉算法(Dijkstra)

图结构中应用的最多的就是最短路径的查找了,关于最短路径查找的算法主要有两种:迪杰斯特拉算法(Dijkstra)和Floyd算法。其中迪杰斯特拉算法(Dijkstra)实现如下:原理就是不断寻找当前的最优解:voidmain(){ intV[Max][Max]={0,8,32,Infinity,Infinity, 12,0,16,15,Infinity, Infinity

2014-09-24 22:08:12

关于子函数中用new动态申请的空间的思考

当我们的程序在运行时才能决定数组空间的大小的情况下,我们会经常使用new或者malloc来在堆空间中动态的申请一片空间,这是相当的方便和实用的。最近经常使用自己也发现了一些问题以及自己对这些问题的思考:voidmain(){ int*B; cout<<*B; fun(&B); cout<<*B;}voidfun(int**A){ *A=newint(10);}上面

2014-09-13 15:30:35

c++中函数模板的使用

在程序设计中,经常要使用到函数体相同的函数,如果我们要根据所使用的参数表不同来决定调用具体哪个函数时,我们经常使用的方式是进行函数重载,但是当我们的函数很多的时候会发现实现起来很不方便。所以c++提供了函数模板的概念,这和类模板实现起来的方式是类似的。下面举个例子,我们经常要使用的冒泡排序算法,被排序的对象可能是double,int,char,float等等,下面是实现代码:templat

2014-09-13 11:41:12

c++笔试复习

1.请说出#define和const的区别,都有何优点?

2014-08-26 10:51:19

字符串流的使用c++

坚持写博客——善于总结和记录学习的每一天今天简单的复习了下c++的标准IO库,c++的IO操作和c的IO操作原理是不一样的,c++是使用的强大的类库实现了IO的操作,而c只是使用了简单的库函数实现了IO操作。这就带来了一些本质的区别,首先c的IO操作是不进行类型检查的,而c++的进行类型检查的,若输入的类型不正确,那么对象的条件状态会置为false。c++的IO操作主要包括三大类:1、io

2014-08-25 11:12:21

排序二叉树的实现

在计算机科学中,二叉树是一种重要的非线性的数据结构。每个结点的度均小于等于2,通常子树称为左子树和右子树。而排序二叉树是二叉树中的一种,其满足:1.如左子树不为空,那么左子树上的结点的值都小于其根上的值;2.如右子树不为空,那么右子树上的结点的值都大于其根上的值;3.其子树也是一个排序二叉树。下面用递归的方式来插入一个结点来满足上述的要求:typedefstructNode{

2014-07-28 16:37:27

链表队列的实现

队列也是数据结构中比较重要的一种,和栈相反的是,队列是先进先出的,先进队列的可以先出队,跟平时我们排队是一样的。在允许多通道程序运行的计算机系统中,同时几个作业运行。凡是申请输出的作业都从队尾进入队列。现在用链表实现队列,先定义一个链表结点:typedefstructQNode{ intdata; QNode*next;}QNode,*QueuePtr;给队列定义一个头结点

2014-07-26 22:01:40

双向链表的实现

上一篇博文介绍了如何使用C语言实现单链表,这篇博文介绍下双向链表的实现。单链表中每个结点只有一个后驱,而双向链表中每个结点都有一个后驱和前驱(除了第一个结点只有一个后驱,最后一个结点只有一个前驱)。双向链表中每个结点具有一个数据域和两个指向前一个结点和后一个结点的指针域。代码的实现:首先得创建一个结点的结构体:Double_NodetypedefstructDouble_Node{

2014-07-26 16:18:03

单链表

线性表是数据结构中比较重要的一种结构。线性表可以用连续存储空间来表示,也可以用链表的形式表示。链式存储结构不要求在逻辑上相邻的元素在物理位置上也相邻,因此他在插入元素和删除元素上具有着得天独厚的优势,但是却失去了顺序存储中可随机存储的优点。线性链表中每个元素被存放在一个叫做结点的地方,结点包含一个数据域和一个指针域,数据域存放元素,指针域存放着指向下一个结点的指针。若链表的结点中只包含一个指针

2014-07-24 21:17:24

链表排序

链表是一种在物理存储上非连续,非顺序的存储结构,数据的逻辑关系是通过指针链接次序实现的,链表通过一系列结点组成,结点可以在运行时动态生成。每个结点由两部分组成:数据域和存储下一结点的指针域。链表是一种常见的数据结构。要想进行链表排序,首先得建立一个单链表,程序代码是由一个数组转化而来,代码如下:先建立一个结点的结构体:structnode{ intval; node*nex

2014-07-21 23:54:53

希尔排序算法——缩小增量法排序

希尔排序——1959年shell提出而得名,也称为缩小增量排序算法,它是直接插入排序的改进,效率比较高,适合于中小规模的排序。具体的算法实现步骤为:首先得知道直接插入排序的算法,然后就是选择增量给原数列进行分组,对每个分得的小组进行直接插入排序便可,然后逐渐减小这个增量,依然进行新的分组的直接插入排序,直到增量为1,此时数列便是有序数列了。具体的代码如下:首先是对特定的增量的分组的直接插入

2014-07-21 16:15:49

直接插入排序

直接插入排序是一种比较简单的排序方法,他的原理类似于我们玩牌的时候抓牌,手中的牌是按照一定的顺序排列的,然后摸到的牌先进行查找顺序,将牌插到应该插入的地方,直到最后一张牌的插入,那么手中的牌都是有序的。数列的直接插入排序也是这样的,将第一个数看做是排列有序的数列,然后将后面的数依次插入到数列中:代码如下void_insert_sort(int*A,intsize){ int

2014-07-19 00:23:09
奖章
    暂无奖章