- 博客(10)
- 收藏
- 关注
原创 静态链接库与动态链接库
静态链接库lib,在生成可执行文件时,被全部嵌入到exe中,其显示调用:#pragma comment(lib,"XXX.lib") 动态链接库是在程序运行过程中,动态加载dll文件中的函数来执行。因此dll文件需要与exe文件同时发布,exe才能运行。dll模块实例源码:头文件 add.hextern "C" _declspec(dllexport)int add(int,i
2013-09-30 23:51:18 1423
原创 判断一个单链表是否存在环
定义两个快慢指针,同时从头结点出发,慢指针一次走一步,快指针一次走两步。如果快指针赶上了满指针,则说明有环,如果快指针碰到NULL,则说明无环。道理类似于两个人在环形跑道跑步,快者速度是慢者的两倍,慢的人跑完一圈,回到起点,快的人应该正好跑完两圈,回到起点。bool IsExitsLoop(slist *head) { slist *slow = head, *fast =
2013-09-28 12:14:21 875
原创 快速排序
#include int split(int *a,int low,int high){ int pivo,i=low,j=high,x=a[low]; while(i<j) { while(a[j]>x&&i<j)j--; if(i<j) { a[i]=a[j]; i++; } while(a[i]<x&&i<j)i++;
2013-09-28 10:52:54 772
原创 找出字符串中的最长连续数字串
函数原型:int maxnumstr(char *inputstr, char *outputstr) 函数功能:找出inputstr中的最长连续数字串存储到outputstr里并返回长度,如调用maxnumstr("123abc1234a", outputstr)后返回4,且outputstr中为"1234"。 #include #include int maxnumstr(
2013-09-27 22:24:02 1408
原创 求C(n,m)组合问题
2014年IGT校园招聘C++试卷最后一道编程题:有1,2,3……n个数,从这n个数中随机选出m个数,列举出所有可能的情况。例如n=5,n=3,则输出:5 4 35 4 25 4 15 3 25 3 15 2 14 3 24 3 14 2 13 2 1本题可以用递归解决,下面是我的代码,但是耦合性太高,而且内存有点浪费。#include
2013-09-27 09:50:25 1052
原创 memcpy和strcpy
函数memcpy()从from指向的数组向to指向的数组复制count个字符。如果两数组重叠,不定义函数的行为。 char* strcpy(char *d, const char *s) { char *r=d; while((*d++=*s++)); return r; } 原型声明:extern char *strcpy(char* dest
2013-09-26 17:01:08 693
转载 C++ explict关键字
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”); 但是有
2013-09-25 09:22:10 793
原创 只遍历一遍数组,求方差
依据的数学公式:D(X)=E(X^2)-[E(X)]^2(当时只想到那个最原始的公式…………) #include double fangcha(int *arr,int n){ int i; double sum1=0,sum2=0; for(i=0;i<n;i++) { sum1+=arr[i]*arr[i]; sum2+=arr[i]; }
2013-09-23 11:04:11 3185 2
原创 C++与Java区别(IT面试)
这是Java与C++区别的一个比较完整的答案,大家可以学习一下。JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据
2013-09-17 14:49:05 2226
原创 不用sqrt库函数求一个整数的平方根(牛顿迭代法)
#include #include double mysqrt(double n){ double x0,x1; x0=1; while(1) { x1=0.5*(x0+n/x0); if(fabs(x1-x0)<1e-3)break; x0=x1; } return x0;}int main(){ printf("%f",m
2013-09-17 10:16:01 2404
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人