- 博客(32)
- 资源 (1)
- 收藏
- 关注
转载 在给定位置插入一个字符串
#include#includevoid main(){ char ch[40],ch2[20],ch3[20],i,j,temp; printf("请输入第一串字符:"); gets(ch); printf("请输入第二串字符:"); gets(ch2); printf("请输入 串2 插入 串1 的位置:");
2012-10-31 16:22:37 476
转载 单链表逆置
/*单链表逆置*/#include#includetypedef struct Number_t //链表的类型{ char data; //链表当前结点的值 struct Number_t *next; //链表当前结点指向下一结点的指针}Number,*Number_tPtr;Number_tPtr CreateList(Number *L)
2012-10-30 18:58:11 809
转载 长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的swap,请设计并实现排序。
#includeusing namespace std;void swap(int &a, int &b){ a=a^b; b=a^b; a=a^b;}void msort(int a[], int n){ int i=0; while(i { if(a[i]==i) i
2012-10-30 13:46:00 2239
转载 C++求N以内所有的质数
有两种方法:筛选法和开根号法 筛选法:从小到大筛去一个已知素数的所有倍数。依次删除可被2整除,3整除。。。。的数字,剩下的则为素数 。 开根号法:如果一个数(>2),对这个数求平方根,如果这个数能被这个数的平方根到2之间的任何一个(只要有一人就行)整除说明就不是质数,如果不能就说明是质数!原理:假如一个数N是合数,它有一个约数a,a×b=N,则a、b两个数中必有一个大于或等
2012-10-29 11:35:29 36629 1
原创 汇编写的内存拷贝函数
void AsmCopyMemory(char *DESTION,char *SOURCE,unsigned int count){ char *des=DESTION; char *sou=SOURCE; _asm { MOV ECX,count MOV ESI,0 L1:
2012-10-28 20:31:23 2109
原创 itoa()其中指定转换的进制
#includechar *itoa(int val, char *buf, unsigned radix){ char *p; char *firstdig; char temp; unsigned digval; p = buf; if(val { *p++ = '-';
2012-10-27 20:38:01 378
原创 冒泡排序
冒泡法排序思想 :/*冒泡排序 i∈[0,N-1) //循环N-1遍j∈[0,N-1-i) //每遍循环要处理的无序部分 swap(j,j+1) //两两排序(升序/降序)*/方式一:#include void main(){int b[11]={1,4,5,7,0,8,15,2,4,11,23};int
2012-10-27 20:20:12 320
原创 内存泄露
一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显式释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。 内存泄露后果 内存泄漏会因
2012-10-27 18:05:34 507
翻译 如何对嵌入式系统进行调试
http://www.eefocus.com/article/08-06/5311320040657tq0Q.htmlhttp://wenku.baidu.com/view/84789169a45177232f60a251.htmlhttp://hi.baidu.com/wgiomsiwebcqxzr/item/1e8730f82ed59bc6a835a255
2012-10-26 18:53:48 338
转载 多叉树转换为二叉树算法
#include#include using namespace std;struct Node // 以表的形式存储的树结点{ char data; int parent; int lchild; int rchild;};struct TreeNode // 以二叉链表存储的树结点{ char data
2012-10-24 19:37:01 2341
转载 五大内存 分区
五大内存分区 在C++中,内存分成5个区: 堆、栈、自由存储区、全局/静态存储区、常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。
2012-10-24 10:55:33 608
翻译 C++传值,传址,引用的区别
引用与指针的比较 ——引用是C++中的概念引用是C++中的概念,其操作符是: & 。这跟C中是取地址操作符一样,但是意义不一样,C中没有引用的。 (切记 !)以下程序中
2012-10-24 10:31:06 6321 1
原创 C中的静态存储区和动态存储区
c语言中需要内存来存放数据。而内存主要分为两类:静态存储区和动态存储区;1.静态存储区分为:只读数据(READONLY DATA)区、以读写数据(RW DATA)区、未初始化区(BSS)。它们都是在程序编译连接阶段确定的,在程序执行的阶段不会改变。2.动态存储区分为堆和栈。都是程序执行的过程中动态分配的,大小也随之动态变化。从内存管理的实现的角度看来,堆使用的链表实现的,而栈使用的是线性
2012-10-24 10:12:24 1014
转载 堆内存和栈内存
1.堆内存和栈内存 堆内存是区别于栈区、全局数据区和代码区的另一个内存区域。堆允许程序在运行时动态地申请某个大小的内存 在学习C程序设计语言时,会遇到两个很相似的术语:堆内存和栈内存。这两个术语虽然只有一字之差,但是所表达的意义差别还是很大的,堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而
2012-10-24 09:10:30 360
转载 函数参数(指针的指针)传递问题
程序1:void myMalloc(char *s) //我想在函数中分配内存,再返回{s=(char *) malloc(100);}void main(){char *p=NULL;myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么?if(p) free(p);}程序2:void myMalloc(char **s)
2012-10-24 08:53:48 496
转载 形参,实参,传值,传地址,传引用
函数的参数分为形参和实参两种形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。函数的形参和实参具有以下特点: 1. 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的
2012-10-23 18:44:12 875
转载 memcpy()与memmove()的差别
memcpy与memmove的目的都是将N个字节的源内存地址的内容拷贝到目标内存地址中。但当源内存和目标内存存在重叠时,memcpy会出现错误,而memmove能正确地实施拷贝,但这也增加了一点点开销。memmove的处理措施:(1)当源内存的首地址等于目标内存的首地址时,不进行任何拷贝(2)当源内存的首地址大于目标内存的首地址时,实行正向拷贝(3)当源内存的首地址小于目标内存
2012-10-23 10:46:39 532
原创 C,C++创建二叉树,以及3种遍历
C++ 实现 ——引用是C++不同于C的地方//其中扩充结点用'0'号表示。即‘0’表示空树节点#include#include#include #includeusing namespace std;#def
2012-10-22 15:57:36 17971
原创 建立X以内的素数表prim
//建立X以内的素数表prim,prim[i]=0则i为素数,=1不是质数#include void maketable(int x){ int i,j,prim[1000]; memset(prim,0,sizeof(prim));//初始化质数表 prim[0]=1; prim[1]=1; prim[2]=0; //用筛选法求X
2012-10-21 12:35:29 583
原创 求数组的子数组的最大和,时间为O(n)
//////////////// O(n^3)#includeint MaxSum(int* A, int n){ int maximum = -(1 int sum=0,i,j,k; for(i = 0; i { for(j = i; j { for(
2012-10-21 09:22:22 1288
转载 万进制,乘法
#include#includeusing namespace std;void num1(int s[],string st1);int a[2501],b[2501],c[5002]; //此处可以进行2500位万进制乘法,即10000位十进制乘法。int main(){ string str1,str2; cout int len;
2012-10-20 18:42:24 1815
转载 高精度乘法
#include#includeusing namespace std;int main(){ string str1,str2; int a[250],b[250],c[500],len; //250位以内的两个数相乘 int i,j; memset(a,0,sizeof(a)); memset(b,0,sizeof(b));
2012-10-20 18:12:55 415
转载 高精度除法
#includeint main(){ long int x,y,u,n; printf("请输入两个整数:\n"); scanf("%d%d",&x,&y); printf("您想输出小数点后几位?(如果可以整除,只需要输出小数点后一个0)\n"); scanf("%d",&n); printf("结果:\n"); p
2012-10-20 18:11:40 288
转载 高精度乘法
#include#includeusing namespace std;int main(){ string str1,str2; int a[250],b[250],c[500],len; //250位以内的两个数相乘 int i,j; memset(a,0,sizeof(a)); memset(b,0,sizeof(b));
2012-10-19 15:19:10 325
转载 高精度减法
#include#includeusing namespace std;int compare(string s1,string s2);int main(){ string str1,str2; int a[250],b[250],len; int i; memset(a,0,sizeof(a)); memset(b,0,
2012-10-19 15:15:07 380
转载 高精度加法
#include#includeusing namespace std;int main(){ string str1,str2; int a[250],b[250],len; //数组的大小决定了计算的高精度最大位数 int i; memset(a,0,sizeof(a)); memset(b,0,sizeof(b));
2012-10-19 11:16:39 312
原创 2分查找
#includeint binSearch(const int *Array,int start,int end,int key){ int left=start, right=end; int mid=0; while(left { mid=left+(right-left)/2; //防溢出 //注释中为递归算
2012-10-19 10:09:39 358
原创 数组和指针,实例
#include int main(){ char *srt[]={"welcome","To","Center","Garud"}; char **p = &srt[1]; // printf("%s\n",*p); srt[0]=(*p++)+2; srt[1]=*(p+1); srt[2]=p[1]+3;
2012-10-18 16:10:35 300
原创 strstr 实现
包含文件:string.h 函数名: strstr 函数原型:extern char *strstr(char *str1, char *str2); 功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。 返回值:返回该位置的指针,如找不到,返回空指针。char *strstr( const char *s1, const ch
2012-10-18 09:11:59 532
转载 归并排序算法(递归实现)
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序
2012-10-17 21:09:43 379
原创 求64位整型n,中各个bit位是1的个数
#include #includeusing namespace std;int count(long long v){ int num=0; while(v) { v &=(v-1);//执行效率为V中1的个数,时间复杂度比通过除操作、位操作比较高出很多 num++; } return nu
2012-10-17 17:02:10 1593
转载 进程和线程的联系和区别
进程和线程的联系和区别 2012-03-29 17:14:53| 分类:操作系统 |字号 订阅进程和线程的联系和区别 (2012-03-28 21:31) 定义:一、进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。二、线程是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能
2012-10-16 21:27:17 303
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人