自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zwb8848happy的专栏

为找个漂亮老婆而读书

  • 博客(57)
  • 资源 (10)
  • 收藏
  • 关注

原创 数的计算

描述要求找出具有下列性质数的个数(包含输入的自然数n):先输入一个自然数n(n1. 不作任何处理;2. 在它的左边加上一个自然数,但该自然数不能超过原数的一半;3. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.输入一个自然数n输出一个数,表示满足条件的数的个数样例输入6样例输出6提示样例说明:满足条件的数是6,16,26,12

2012-03-30 17:35:33 595

原创 c/c++的编程规范

一个程序员的编码水平如何,从他写的代码的风格,布局就可以看出来。所以良好的编码风格是非常重要的。清晰易读的代码,才是高质量的代码。下面是我从网上找到的一个关于编码风格的帖子。对于编程的初学者比较有用,高手就不必浏览了。一.每日编写如此之多的代码,很多同学现在的想法是,我要实现功能,实现了功能以后,万事大吉。其实在实际工作当中不是这样的。在工作当中,因为各种原

2012-03-30 13:56:01 557

原创 WINAPI总结

问:WinMain()前面的WINAPI是什么意思?答:使用windows系统函数。zz两片文章 函数调用的几个概念:_stdcall,_cdecl....             左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。   _stdcall是Pas

2012-03-30 13:34:40 1109

原创 CALLBACK总结

CALLBACK函数在微软的官方手册中是这样定义CALLBACK函数的:“CALLBACK函数是由应用程序 定义而由操作系统调用的函数”。 凡是由用户设计而却由Windows系统调用的函数,统称为Callback函数,这些函数都有一定的类型,以配合Windows的调用操作。   某些API函数以Callback作为其参数之一,这些API,如SetTimer、LineDDA、

2012-03-30 13:27:39 651

转载 GetWindowLong函数(最好的解释资料,绝对值得一看,此函数在子类化技巧时候经常用到)

今天在看一个代码里头写了GetWindowLong (hwnd, 0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第2个参数为0是指什么,MD,很恼火,最近终于在一个国外网站找到,我在这篇文章贴了,网站是http://www.codeguru.com/forum/archive/index.php/t-243778.html先收集所有关于此函数的使用方法以及程序代码

2012-03-30 13:10:34 2273

原创 SetWindowLong函数总结

在网上搜了一下这个函数的用法,在此汇总一下!注册窗口类时可以指定“每窗口额外内存” 这段内存可以通过Get(Set)WindowLong   来访问 SetWindowLong   的   nIndex   参数如果不小于0 那么就是访问这段内存, 这段内存存放什么东西都可以 如果   nIndex   小于零 那就是访问窗口的数据结构 其实这是另外一个

2012-03-30 13:08:30 21309

原创 InvalidateRect函数

问题:函数中的参数TURE FALSE到底怎么用阿? 清说得具体一点 TURE就是把从前的区域擦掉再重画?答:InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效InvalidateRect函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。Invalidate()之

2012-03-29 19:27:14 7077 1

原创 windows设置字体

CreateFont函数作用:创建一个具有特定特性的逻辑字体,该字体创建后可被用作其他设备。函数原型:HFONT CreateFont(int nHeight,     :字体高度. 三种情况 1、>0:字体的高度值(设备坐标);2、=0:字体采用缺省值. 3、int nWidth,      :字体宽度.int nEscapement,   :文本行的倾斜度.

2012-03-28 20:26:04 1064

原创 windows滚动条

今天自己写了《windows程序设计》184页的用键盘控制滚动条显示程序,对滚动条显示有点感悟,留个纪念!代码如下:#include #include #include "SYSMETS.h"LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);int WINAPI WinM

2012-03-28 17:40:45 1302

原创 为什么不能在WM_CREATE中绘制

问题:case WM_CREATE: TextOut(hdc,10,53,TEXT("OKOK"),4);//这条语句不能打印出结果,即不可见 return 0;case WM_PAINT : hdc=BeginPaint(hwnd,&ps); TextOut(hdc,10,53,TEXT("OKOK"),4);//这条语句可以正确打印结果 EndPaint(hwnd,

2012-03-26 21:21:28 919

原创 对数组名取地址

问题:请问这道题输出结果是多少?为什么?main()  {int a[5] = {1,2,3,4,5};int *ptr = (int*)(&a+1);printf("%d %d" , *(a+1), *(ptr-1));}答案:2,5分析:第二个(&a+1)中的&a取得是整个数组的首地址,&是对整个数组操作的,所以(&a+1)即ptr1指向

2012-03-26 19:57:24 492

原创 windows编程-格式化输出

大家还记得用c语言中printf函数进行格式化输出吧!可惜的是windows中并没有这种函数,因为windows不存在标准输入和标准输出的概念。但是我们可以用sprintf和sprintf系列的其他函数来显示文本。考虑到Unicode和ASCII的关系,我们使用更健壮的wsprintf函数。下面给个例子:#include int WINAPI Win

2012-03-26 15:15:37 1008

原创 Ctrl+Z问题

问题:下面一题为什么当我输入: a空格b空格c空格Ctrl+Z 时无输出呢? 但是当我输入a空格b空格c空格回车,再按Ctrl+Z是就有输出呢?#include int main(){ char ch,s[20]; int index=0,i; //index为下标 while (scanf("%c",&ch)!=EOF) { s

2012-03-24 15:17:53 774 1

原创 scanf问题

(见帖子http://topic.csdn.net/u/20120229/16/711e7609-1605-4965-ab24-11e5a935cc9b.html):问题:#include int main(){ int i ; char a[5] ; for(i = 0 ; i < 5 ; i++) { scanf("%c

2012-03-24 14:18:48 464

原创 BeginPaint和GetDC

刚学windows程序设计,在编写一个程序时,发现一个问题:所有的绘图消息都在WM_PAINT中处理吗?如果我有很多不同的绘图任务,例如,A想画个矩形,B想画个圆,C想输出一段话,D想。。。我觉得这些不同的绘图如果都放在WM_PAINT中处理,那不是一处理WM_PAINT消息就全都画出来了吗?在csdn上提问后,一位大神给了我答案:可以用函数自绘。于是我写了代码:

2012-03-24 13:04:15 476

原创 字符串

#include int main(void){ char* s1 = "Hello, World!\0"; char* s2 = "abcdef\0"; printf(s1); s1++; s2++; *s1 = *s2; printf(s1); return 0;}问:为什么*s1和*s2不相等呢?

2012-03-24 11:11:58 325

原创 指针这东西

指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。  先声明几个指针放着做例子:  例一:  (1)int*ptr;  (2)char*ptr;  (3)int**ptr;  (4)int(

2012-03-24 11:06:30 521

转载 二级指针与二级数组汇总

一个函数形如:void f(float **p){/* 想要在函数体中按二维数组的方式访问*/    p[1][1] = 0;//c++用vc编译ok,运行出错(非法访问)}float **p; //其实这里的p并不是一个二位数组的指针,只不过是一个指向指针的指针像你这样访问肯定是会出问题的。例如:float a[2][2]={0,1

2012-03-24 10:59:36 788

原创 关于Invalidate、InvalidateRect和UpdateWindow

关于Invalidate、InvalidateRect和UpdateWindow(1)Invalidate       Invalidate标记一个需要重绘的无效区域,并不意味着调用该函数后就立刻进行重绘。类似于PostMessage(WM_PAINT),需要处理到WM_PAINT消息时才真正重绘。因为您Invalidate之后还有其他的语句正在执行,程序没有机会去处理WM_PAI

2012-03-23 22:15:02 599

原创 30、在从1到n的正数中1出现的次数

题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。分析:这是一道广为流传的google面试题。题目分析:感觉这个问题和我以前做的一个问题差不多,http://blog.csdn.net/zwb8848happy/article/details/7310846

2012-03-23 19:58:06 856

原创 29、栈的push、pop序列

题目:输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。   比如输入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一个pop系列。因为可以有如下的push和pop序列:push 1,push 2,push 3,push 4,pop,pu

2012-03-22 21:05:04 722

原创 28、整数的二进制表示中1的个数

题目:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。分析:这是一道很基本的考查位运算的面试题。包括微软在内的很多公司都曾采用过这道题。方法一:如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减去1,那么原来处在整数最右边的1就会变成0,原来在1后面的所有的0都会变

2012-03-22 20:24:48 1236

原创 27、跳台阶问题

题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度。这道题最近经常出现,包括MicroStrategy等比较重视算法的公司都曾先后选用过个这道题作为面试题或者笔试题。分析:第一次只跳1 级,此时跳法数目等于后面剩下的n-1 级台阶的跳法数目,即为f(n-1);另外一种选择是第一次跳 2级,此时跳法数目等

2012-03-20 20:59:51 1126

原创 26、左旋转字符串

题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。分析:一、如果不考虑时间和空间复杂度的限制,最简单的方法莫过于把这道题看成是把字符串分成前后两部分,通过旋转操作把这两个部分交换位置。于是我们

2012-03-20 20:48:50 799

原创 24、链表操作

题目:链表操作,(1)单链表就地逆置,(2)合并链表程序如下:#include #include typedef struct node{ struct node *next; int value;}LinkList;void CreateList(LinkList *L);void Reverse(LinkList *L);void Outp

2012-03-19 20:11:29 769

原创 25、在字符串中找出连续最长的数字串

题目:写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputst

2012-03-19 19:27:20 7735 4

原创 21、2010年中兴面试题

编程求解:输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.分析:递归法思路:1.首先判断,如果n>m,则n中大于m的数不可能参与组合,此时置n = m;2.n=m,n本身符合条件,输出;3.n给出代码:#include int re

2012-03-15 22:23:13 1051

原创 c语言中堆栈认识汇总

1.堆是是不连续的内存区域,栈是是一块连续的内存的区域(有待考证)2.为什么c语言在执行工作时程序将使用一个运行时堆栈在中国一些老师或一些低劣质量的书,喜欢把栈叫堆栈。其实堆,栈是栈。c语言在执行工作时程序将使用一个运行时堆栈,其实C语言是基于过程的语言,又叫基于函数的语言。而函数的调用过程用栈又非常的合适。所以,伴随程序的运行,函数的调用都默认给一个栈,基本上是一个线程就有一

2012-03-10 22:23:40 888

原创 c越界问题

问题:下面程序当我输入9999999999(共10个),程序输出1410065407#include int main(){ int n; while (scanf("%d",&n)!=EOF) { printf("the result is : %d\n\n",n); } return 0;}请问大家,如果溢出,

2012-03-10 22:04:13 1168

原创 结构体类型数据的字节长度

提问:typedef struct{ int i; char name; double score;}student;int main(){ printf("学生结构体所占的字节数是 %d \n",sizeof(student)); return 0;}我想问一下,答案不应该是13吗?运行结果竟然是16,而且我把char name去掉了结果还是16。doubl

2012-03-10 21:50:28 822

原创 20、输入一个表示整数的字符串,把该字符串转换成整数并输出

题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345。分析:1、要考虑是不是负数;2、要考虑会不会有除数字字符以外的字符;3、大数的话另外处理。给出代码:#include #include #include #include char num[100],len_Num; //num为字符串中

2012-03-10 21:15:28 3735

原创 19、Fibonacci数列探秘

题目:定义Fibonacci数列如下:         /   0 ,n=0f(n)=     1 , n=1      \   f(n-1)+f(n-2) , n=2输入n,用最快的方法求该数列的第n项。分析:在很多C语言教科书中讲到递归函数的时候,都会用Fibonacci作为例子。因此很多程序员对这道题的递归解法非常熟悉,但....呵呵,你知道的。。

2012-03-10 20:44:20 633

原创 计算c程序执行的时间

C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下: clock_t   clock(   void   ); 这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock   tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用

2012-03-10 19:48:00 469

原创 18、约瑟夫环问题

题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。July:我想,这个题目,不少人已经 见识过了。分析:一般我们采用一个循环队列来模拟约瑟夫环的求解过程,但是如果n比

2012-03-10 19:41:50 770

原创 17、在一个字符串中找到第一个只出现一次的字符

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。   分析:这道题是2006年google的一道笔试题。ASCII码共有128个,所以可以建一个包含128个元素的数组,初始化为0。扫描字符串,出现某字符,就自增该字符对应的ASCII值为下标的元素值!代码如下:#include #include #include

2012-03-10 19:19:29 1124 3

原创 16、层次遍历二叉树

题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。   例如输入  8  / \ 6 10/ \ / \5 7 9 11输出8 6 10 5 7 9 11。分析:这一题就是考的二叉树的层次遍历。代码如下:#include #include #include "TREE.h" //该头文件包含二叉树的建

2012-03-10 18:50:42 535

原创 三、窗口与消息源代码

#include LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow){ static TCHAR sz

2012-03-09 21:30:18 455

原创 15、输入一颗二元查找树,将该树转换为它的镜像

题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。   例如输入:  8  / \  6 10 /\ /\5 7 9 11输出:  8  / \ 10 6 /\ /\11 9 7 5方法一:递归可以用递归方法对每一个结点交换左右子

2012-03-09 21:17:47 643

原创 14、输入一个已经按升序排序过的数组和一个数字

题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。分析:因为只需要输出满足要求的一对数字即可,这里可以设置两个指针,分别指向数组头和尾,然

2012-03-08 22:33:13 2027

原创 13、输入一个单向链表,输出该链表中倒数第k个结点

题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。方法一:假设整个链表有n个结点,那么倒数第k个结点是从头结点开始的第n-k-1个结点(从0开始计数)。如果我们能够得到链表中结点的个数n,那我们只要从头结点开始往后走n-k-1步就可以了。如何得到结点数n?这个不难,只需要从头开始遍历链表,每经过一个结点,计数器加一就行了。给

2012-03-07 22:42:20 6846 1

音乐播放器源码(c语言+Win32)

这是第二次写的代码,在上一版的基础上简化了代码,重新设计了函数及接口!

2012-10-19

音乐播放器

我写的音乐播放器,但是有错,不知为何。

2012-09-15

c#版八皇后源码

一次课程设计时写的小游戏,共享一下,很精彩哦

2012-08-20

c语言窗口版万年历

学习《windows》程序这本书后写的第一个窗口程序,将原来DOS版的移植到windows下

2012-08-20

数字雨屏保源码+注释参考版

给出网上下得源码和可执行文件,另外附我修改过,并加注释的源码

2012-08-20

遇见版数字雨屏保

网上下得一个无源码的可执行文件,然后自己写好源码和注释,两个难点也讲得很清楚。

2012-08-20

c语言数字雨屏保源码(已加注释)

c语言+windows API所编写的程序,从网上下得源码,自己理解后,重新编写了一下,并添加注释

2012-08-19

c+win32 俄罗斯方块源代码!

很好地俄罗斯方块哦,不信就下下来看看 有帮助文档,可以帮助理解

2012-04-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除