C/C++
文章平均质量分 65
leohxj
Who cares ?
展开
-
头文件的使用
头文件的使用** 把函数原型和常量定义放在一个头文件中是一个很好的编程习惯。例子:假设需要管理4个连锁的旅馆。对于预定住宿时间超过一天的人来说,第1天的收费是第1天的95%,而第3天的收费则是第2天的95%,等待。编写一个程序,对于指定的旅馆和住宿天数可以计算出收费总额。同时程序中要实现一个菜单,从而允许用户反复进行数据输入直到选择退出。源码:/* usehotel.c -- 旅馆房间转载 2010-04-29 12:58:00 · 631 阅读 · 1 评论 -
20100623--C语言的声明
<br /> C语言的声明有些晦涩与他的历史有关。<br /> 对于指针和const的声明可能会有几种不同的顺序:<br />const int *p;<br />int const *p;<br />int * const p;<br />前2种的效果是一样的,指针所指向的对象都是只读的。<br />后一种指针式只读的。因为const直接修饰的是指针。<br />const int * const p;<br />int const * const p;<br />这2种声明使得指针和对象都是只读的。原创 2010-06-23 12:34:00 · 266 阅读 · 0 评论 -
C++ STL初识
<br /><br />可以说是为了追求可复用性,产生了STL。<br />STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。<br />它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具<br />革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程<br />序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。这种现象原创 2010-10-31 20:19:00 · 485 阅读 · 0 评论 -
ACM-POJ 算法训练指南
<br />初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法: (1)图的深度优先遍历和广度优先遍历. (2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra) (poj转载 2010-11-05 23:27:00 · 911 阅读 · 0 评论 -
POJ 二分算法
<br />POJ 3258<br />#include<stdio.h><br />#include<algorithm><br />using namespace std;<br />const int INF=1000000000;<br />int a[60000],N,M,L;<br />int check(int v)<br />{<br />int last,i,cnt;<br />last=a[0];cnt=0;<br />for(i=1;i<=N+1;++i)<br />{<br />转载 2010-11-06 20:26:00 · 477 阅读 · 0 评论 -
LCS算法
<br /><br />首先将要看到如何运用动态编程查找两个 DNA 序列的最长公共子序列(longest common subsequence,LCS)。发现了新的基因序列的生物学家通常想知道该基因序列与其他哪个序列最相似。查找 LCS 是计算两个序列相似程度的一种方法:LCS 越长,两个序列越相似。<br />子序列中的字符与子字符串中的字符不同,它们不需要是连续的。例如,ACE 是 ABCDE 的子序列,但不是它的子字符串。请看下面两个 DNA 序列:S1 = DE>GCCCTAGCGDE>S2 =转载 2010-11-11 19:59:00 · 29130 阅读 · 10 评论 -
大数的高精度四则运算
看代码吧。#include #include #include using namespace std;inline int compare(string str1, string str2){ if(str1.size() > str2.size()) //长度长的整数大于长度小的整数 return 1; else if(str1.size()转载 2010-11-13 21:29:00 · 841 阅读 · 0 评论 -
Kruskal算法 (并查集)
<br /><br />Kruskal算法(并查集)<br />数据:<br />int root[]:存放节点的根,初始化时候全部等于本身。<br />struct node{<br /> int x,y,distance;<br /> void set ( int a, int b, int w ) { x=a,y=b,distance=w; }<br /> }Node[];<br /> :存放图,定点,x,y.距离distance.<br />void cmp():比较函数,给qsor原创 2010-11-16 19:49:00 · 658 阅读 · 0 评论 -
Dijkstra 算法
<br /><br />Dijkstra算法:<br />数据:<br />dis[]:记录每个定点的最短路径,初始化dis[s]=0,其他节点dis[]=INF;<br />flag[]:记录定点是否使用。<br />G[][]:邻接矩阵存放图。<br /> <br />算法:<br />dijkstra(int s)<br />{<br /> <br /> for(int i = 0; i < n; i++)<br /> dis[i] = (i ==s?0:INF);<br /> memset(flag原创 2010-11-16 21:31:00 · 379 阅读 · 0 评论 -
最小生成树:Prim算法
<br /><br />prim 算法<br /> <br />以领接矩阵存储 图G<br />bool b[i]表示顶点i是否被访问,初始化时候memset(b,false,sizeof(b));<br />b[0]=value,表示从第0个节点开始。<br />用value[i] 表示节点i到最小生成树A中定点的最小距离。例如value[1]=a[0][1];<br />int sum记录权值和<br />int min判断最小权值,初始值要设置的大,例如 min = 0xffffff;<br />i原创 2010-11-15 20:15:00 · 406 阅读 · 0 评论 -
LCS:最长公共子串
<br /><br />LCS问题就是求两个字符串最长公共子串的问题。解法就是用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0。然后求出对角线最长的1序列,其对应的位置就是最长匹配子串的位置。<br />改进:<br />当字符匹配的时候,我们并不是简单的给相应元素赋上1,而是赋上其左上角元素的值加一。我们用两个标记变量来标记矩阵中值最大的元素的位置,在矩阵生成的过程中来判断当前生成的元素的值是不是最大的,据此来改变标记变量的值,那么到矩阵完成的时候,最长匹配子串的位置原创 2010-11-17 19:38:00 · 518 阅读 · 0 评论 -
编程只是语言和框架吗?
<br /> 经常听到这样的说法,学习编程担心最后都变成了编码工人,学习Java担心Java只是能做个网站,不想一辈子编码,在简历中写精通JavaEE,熟练各种框架等等。 难道编程就只有语言和框架,都是重复劳动,没有发展前途吗? 编程的最终目的是实现功能,实现通讯录系统,实现小游戏,实现一个网站,实现中国移动收费系统,实现医院的信息管理系统,实现一个机器人等。各种类型、各种规模的系统都有。 而语言和框架在其中的作用是什么呢? 语言就是把我们的想法转载 2010-06-17 02:45:00 · 339 阅读 · 0 评论 -
写给大四即将找工作的同学
<br /><br />大四的学生面临就业问题,而目前的就业环境并不是很好,为了能够找到理想的工作,应该做些什么准备呢?<br />下面从专业技术、基础知识、逻辑能力和简历方面给出一些建议。仅仅是我的想法,如有不合适,请指正。我是计算机的老师,偏软件,所以我的分析以计算机软件的学生为例。<br />1、 专业技术的准备<br />首先要充分认识自己,想干什么?能干什么?缺什么?<br />首先分析自己想干什么?根据自己的兴趣选择一个或几个可能的就业方向,然后分析一下这些岗位需要哪些能力,例如Java软件工转载 2010-06-17 02:43:00 · 651 阅读 · 0 评论 -
C的一些基本指针操作
<br />指针操作<br />一些关于指针用到操作,c提供来6种基本到指针操作,我用一段代码实现这6种操作,源码如下<br /><br />// ptr_ops --指针 操作 <br />1.#include<stdio.h><br />2.int main(void)<br />3.{<br />4. int urn[5] = {100,200,300,400,500};<br />5。<br />6. int *ptr1,*ptr2,*ptr3;<br />7.<br />8. ptr1转载 2010-06-17 02:32:00 · 6082 阅读 · 0 评论 -
c++动态创建二维数组
方法1:用一维数组代替二维数组 int n,m; cin>>n>>m; int* a = new int[n*m]; for(int i = 0 ; i { cout for(int j = 0 ; j { a[i*m+j] = i+j; cout } } cout转载 2010-04-29 12:59:00 · 451 阅读 · 0 评论 -
C语言给函数计时
C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:clock_t clock( void );这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟 时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:#ifndef _CLOCK_T_DEFINEDtypedef long cloc转载 2010-06-29 20:22:00 · 10536 阅读 · 1 评论 -
如何判断一个数是否为素数
怎么判断一个数是否为素数?笨蛋的作法: bool IsPrime(unsigned n){ if (n { //小于2的数即不是合数也不是素数 throw 0; } for (unsigned i=2;i { //和比它小的所有的数相除,如果都除不尽,证明素数 if (n%i==0) {//除尽了,则是合数转载 2010-05-27 21:21:00 · 9065 阅读 · 3 评论 -
20100601--C语言中的字符型与整型
在VC下,sizeof (int)=4,sizeof(char)=1的,在声明变量时,是按在内存中从高地址分配,递减变量所占的字节数,数组从下标高的在内存中地址也是高的,char型理应站1个字节,可是不知道怎么的,系统分配的却是4个字节。查看变量内存地址可以用 printf("%x",&变量名);#includeint main(){int i,a[10];char c,d;printf("%x/n",&i);printf("%x/n",&a);printf("%x/n",&a[0]);printf("%原创 2010-06-01 19:58:00 · 673 阅读 · 0 评论 -
用C语言的rand()和srand()产生伪随机数的方法总结
<br /> <br />标准库<stdlib.h>提供两个帮助生成伪随机数的函数:<br />函数一:int rand(void);<br />从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。<br />RAND_MAX定义在stdlib.h,其值为2147483647。<br />函数二:void srand(unsigned seed);<br />参数seed是rand()的种子,用来初始化rand()的起始值。<br />可以认转载 2010-06-02 16:03:00 · 379 阅读 · 0 评论 -
VC编译错误信息
<br /> 1、fatal error C1010: unexpected end of file while looking for precompiled header directive。 <br /> 寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h") <br /><br /> 2、fatal error C1083: Cannot open include file: 'R…….h': No such file or directory <b转载 2010-06-02 18:48:00 · 423 阅读 · 0 评论 -
POJ上的题目分类
<br /><br />初期:<br />一.基本算法:<br /> (1)枚举. (poj1753,poj2965)<br /> (2)贪心(poj1328,poj2109,poj2586)<br /> (3)递归和分治法.<br /> (4)递推.<br /> (5)构造法.(poj3295)<br /> (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)<br />二.图算法:<br /> (1)图的转载 2010-06-02 22:12:00 · 369 阅读 · 0 评论 -
关于C语言文件的操作
<br /> 所谓“文件”一般指在外部截止上数据的集合。<br /> FILE类型结构体是一个文件类型. 如:FILE *fp; fp即一个指向文件的指针。<br /> 文件的打开,fopen():<br /> FILE *fp;<br /> fp=fopen(文件名,使用文件方式);<br />文件关闭:fclose(文件指针)<br />fput,fput(ch,fp);<br />fget,ch=fget(fp);<br />fread,fread(buffer,size,count,fp);<b原创 2010-06-09 13:18:00 · 538 阅读 · 0 评论 -
关于WinGW与DEV C++新手教程
<br /> 闲来无事,最近自己也学会了如何使用WinGW和DEV C++.,古语道:独乐乐不如众乐乐。<br /> 关于WinGW这个是GCC在WINDOWS下的一个版本,为了方便那些在MS下工作的人们使用GCC。它的下载可以去官网:<br />http://www.mingw.org/下载。下载之后进行安装,直接安装在c:/MinGW就可以。由于软件是英文的,初学的朋友可能会比较反感,但是按照基本的提示next下去,就没问题的。<br />安装完成之后,记得在控制面板的系统中的高级选项的环境变量中,原创 2010-06-17 01:39:00 · 4920 阅读 · 2 评论 -
算法的力量——李开复
<br /><br />算法的力量<br />算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位转载 2010-11-24 22:37:00 · 897 阅读 · 0 评论