C/C++
canye1984
这个作者很懒,什么都没留下…
展开
-
回文数
<br />#include<string.h><br />#include<stdio.h><br />#include<malloc.h><br />int test(char * str)<br />{<br />int i;<br />int j=0;<br />i=strlen(str);<br />while((*(str+j)==*(str+i-1-j))&&(j<=i/2))<br />{j++;<br />} <br />if(j-1==i/2){printf("YES");retur原创 2010-11-01 12:10:00 · 351 阅读 · 0 评论 -
循环比较
<br />#include<stdio.h><br />int main(void)<br />{<br />//循环1 <br />int i=0;<br />while(i++<5)<br />{if(i==3)continue;<br />printf("%d ",i);<br />} <br />printf("/n");<br />//循环2<br />i=0;<br />while(i<5)<br />{i++;<br />if(i==3)continue;<br />printf("%原创 2010-11-01 12:14:00 · 442 阅读 · 0 评论 -
约瑟夫环
<br />程序:<br />难点:<br />1.如何建立循环链表<br />2.如何删除链表<br /> <br />核心代码:<br />//三个参数:节点,前一个删除节点的符号,目前环的节点数目<br />//从当前节点算1开始数数,<br />//特例论证,用2论证<br />//由于1是节点本身,所有用一个循环<br /><br />void joseph(NODE p,int data,int count)<br />{<br />int i=1;<br />NODE temp;<br />i原创 2010-11-01 12:08:00 · 364 阅读 · 0 评论 -
一道面试题
<br />题目:27个小运动员在参加完比赛后,口渴难耐,去小店买饮料,饮料店搞促销,凭三个空瓶可以再换一瓶,他们最少买多少瓶饮料才能保证一人一瓶?<br /> <br />思路:<br />1.买M瓶饮料的话,那么可以去换M/3瓶饮料。这个时候手中还有M%3+M/3个瓶子。已经喝了M+M/3,可以用递归来做,这个2.这个数目需要用循环来选择。如果去买1瓶,然后看是否满足条件,一一相加。<br />3.这个题目应该是有公式法<br />4.当手上有两个空瓶的时候,其实是可以换一瓶,然后在还一空瓶。<br /原创 2010-10-26 00:12:00 · 593 阅读 · 0 评论 -
通过反汇编看编译器内存分配
<br /> 通过Ollydbg.exe看最普通的hello world这个程序,可以看到虚拟的4G分配<br /> 程序:<br /> #include<stdio.h><br /> int main(void)<br />{<br />printf("Hello world!/n");<br />return 0;<br />}<br /> <br /> <br /> <br /> <br />通过网上还没有找到这个分配图的详细具体信息。问题太多<br />1.从00000000~000原创 2010-10-23 23:05:00 · 1351 阅读 · 0 评论 -
变元问题
1.程序:#includeint a=10;int b[a];int main(void){int a1=10;int b1[a1]; }结果:编译时出错:variable-size type declared outside of any function :在主函数里面数组的个数可以是变量,但是全局数组的个数变量就报错。2.程序:#include#include#includeint main(void){char * ptr;ptr=(char *)malloc(500*1024*1024);i原创 2010-10-18 10:52:00 · 1257 阅读 · 0 评论 -
快速排序法
上完数据结构,有关快速排序法,有点误解了。本来的理解是把最中间值放在数组的中间位置。然后用递归。应该是随便找一个数,让其左边的所有的数都小于这个数,后边所有的数都大于这个数。然后用递归,这个是递增。让其左边的所有的数都大于这个数,后边所有的数都小于这个数。然后用递归,这个是递减。随便找到一个数,找到其位置。#includeint a[10]={10,2,23,44,45,34,12,23,12,14};int middata(int low,int high){int pivot=a[low];while(原创 2010-10-14 14:18:00 · 422 阅读 · 0 评论 -
利用递归来求解迷宫问题
<br />重点,利用递归要注意一点不要死循环。<br />/*********************************************/<br />//在map.txt文档里面写出1,0的字符<br />//<br />/*********************************************/<br /> <br /> <br /> <br /> <br />#include<stdio.h><br />#include<stdlib.h><br />char mapp原创 2010-10-14 12:30:00 · 599 阅读 · 0 评论 -
一个约瑟夫环的算法
<br />在网上看到一个约瑟夫环的算法,没有看明白到底是怎么一回事。<br />每一次循环得到的不一定是其值,结果正确,而且每一次数数都必须相同。在此记下!<br /> <br />int test(int queue,int num)<br />{<br /> <br /> int r=0;<br /> int i;<br /> for(i=2;i<=queue;i++)<br /> r=(r+num)%i;<br /> return r+1;<br />}原创 2010-11-04 00:41:00 · 446 阅读 · 0 评论 -
申请一段初始化为0的内存
<br />方法1:<br />char *a;<br />a=(char*)malloc(100*sizeof(char));<br />if(a==NULL){printf("Out of memorr!");exit(1);}<br />memset(a,0,100);<br />方法2:<br />char a[100]={'/0'};<br />方法3:<br />char *a;<br />a=(char*)calloc(100*sizeof(char));<br />if(a==NULL){p原创 2010-11-04 00:48:00 · 2813 阅读 · 0 评论 -
利用VS2008中的C++程序编写
1.跳出消息说明为System::Windows::Forms::MessageBox::Show();2.类的属性声明为 private: static int i=0;必须添加static3.控件属性为this->label1->Text4.C++没有null这个标记符5.对于类型的new一般设置为gcnew6.线程的定义为private: static System::T原创 2011-11-23 13:48:50 · 2272 阅读 · 0 评论 -
利用VS2008中的C++程序
利用VS2008中的C++程序编写技巧说明1.跳出消息说明为System::Windows::Forms::MessageBox::Show();2.类的属性声明为 private: static int i=0;必须添加static3.控件属性为this->label1->Text4.C++没有null这个标记符5.对于类型的new一般设置为gcnew6.线程的定义为原创 2011-11-02 09:13:00 · 548 阅读 · 0 评论 -
pragma的用法
<br />有关内存分配的问题,问是不是可以用一个宏来定义,我对于这个不了解。<br />查看了下原来是pragma的用法。<br /> <br />#pragma pack(n)<br />#include<stdio.h><br /> <br />struct test<br />{<br />char a;<br />int b;<br />char c;<br />short d;<br />};<br /> <br /> <br />int main(void)<br />{<br />p原创 2010-11-10 21:40:00 · 386 阅读 · 0 评论 -
结构体数组到底要不要分配内存
<br />clude<stdio.h><br />struct student<br />{<br />int data;<br />float scrore;<br />char name[50]; <br /> <br />}stu[2];<br />/**************************************/<br />//结构体数组不需要分配内存,系统自动分配 <br />/**************************************/原创 2010-11-09 20:35:00 · 5151 阅读 · 0 评论 -
三个常用关键字
三个常用关键字static,const,voilatine局部变量,全局变量类的成员函数,类的属性函数static 主要是相对于变量的两个性质,一个是作用域,还有一个就是存储区。其实static 相对于auto而言const是相对于voilatine而言原创 2010-11-08 17:11:00 · 414 阅读 · 0 评论 -
数组初始化问题
<br />数组初始化问题<br />#include<stdio.h><br /> <br />int main(void)<br />{<br />int a[10]={0};<br />int b[10];<br />char c[10]={'a'};<br />int i;<br />for(i=0;i<10;i++)<br />printf("%d %d ",a[i],b[i],c[i]);<br /> <br />}<br />从运行的结果可以看出a[10]里面10个元素都初始化为了0,但是原创 2010-11-06 22:45:00 · 302 阅读 · 0 评论 -
内存分配
程序的构成一般都是代码和数据。数据一般分为常量和变量。变量又分为局部变量和全局变量。全局变量又分为初始化全局变量,没有初始化全局变量。这个又由代码区。初始化的全局变量的放在数据区。C++分为五个区:全局变量区,栈,堆,自由变量区,代码区ARM里面是分为RO,RW,ZIZI是一般是没有初始化的局部变量。ZI是不放在镜像里,flash一般相当于PC机的应聘。ARM与PC的如何匹配?原创 2010-11-05 23:19:00 · 359 阅读 · 0 评论 -
编译,链接,运行
<br />编译<br />链接<br />运行原创 2010-10-14 22:44:00 · 368 阅读 · 0 评论 -
if与else的配对问题
<br />下面几个程序:<br />程序1:<br />#include<stdio.h><br />int main(void)<br />{<br />int a=0;<br />if(a>=0)<br />if(a>0)printf("the 1 call"); <br />else printf("the 2 call"); <br />getchar(); <br />}<br />程序2:<br />#include<stdio.h><br />int main(void)<br />{<b原创 2010-10-14 21:57:00 · 8803 阅读 · 0 评论 -
ACSII的表示方法
#includeint main(void){printf("%d",'7');printf("%d",7);printf("%d",'/7');printf("%d",'/7');printf("/n");printf("%c",'7');printf("%c",7);printf("%c",'/7');printf("%c",'/7');getchar(); }对于0~127都是有明确规定的,对于128~255没有明确规定,因此出现乱码情况。可以利用UltraEdit查看任何文件的二进制代码。可以看到文原创 2010-10-14 12:48:00 · 466 阅读 · 0 评论 -
C语言关键字—sizeof
<br />sizeof<br />这个关键字是用来查看数据类型的内存储存大小。用法是sizeof();<br />基本数据结构 10种<br />sizeof(char);<br />sizeof(unsigned char)<br />sizeof(float);<br />sizeof(double float);<br />sizeof(long double float);<br />sizeof(unsigned short int);<br />sizeof(short int);<br />原创 2010-10-04 22:01:00 · 596 阅读 · 0 评论 -
字符指针赋值
<br />程序1:把两个相同的字符串赋值给两个不同的指针。比较两个指针<br />#include<stdio.h><br />int main(void)<br />{<br />char *a; <br />printf("%p/n",a);<br />printf("%d/n",sizeof(a)); //定义一个指针(一个字节),指针变量里面的值是随机的,所以这个指针也叫悬空指针。<br />a = "hello";原创 2010-09-13 18:04:00 · 8026 阅读 · 0 评论 -
字符数组与字符串异同
<br />字符数组与字符指针的学习<br />定义,初始化,字符数组退化指针与字符指针,应用,标准输出等<br />1.<br />int main(void)<br /> {<br /> char string[100]={'a','b','c','d'};<br /> char *p="abcd";<br /> <br /> }<br /> <br /> <br /> <br />2.<br />int main(void)<br /> {<br /> c原创 2010-09-13 12:07:00 · 704 阅读 · 0 评论 -
一个程序
<br />这是一个把输入的整数输出为字符型的程序。<br />分为三部分<br />1.判断正负数。<br />2.把数字转换为字符<br />3.把字符倒序输出<br /> <br /> <br />#include<stdio.h><br />int main(void)<br />{<br /> int inter,i=0;<br /> char cha[100];<br /> printf("pls input your inter data:");<br /> scanf("%d",&i原创 2010-09-11 23:41:00 · 496 阅读 · 0 评论 -
字符'/0'
<br />第一:<br />函数在定义并初始化时,如果其中几项没有初始化,那么这个就是'/0',系统自动填充。<br />所有类型的定义并初始化机制。感觉这个机制很强大,系统要给其分配内存空间。要给其补空。<br />#include<stdio.h><br />int main(void)<br />{ int i,j;<br /> char fruit[][7]={"Apple","Orange","Peach","Peach","Peach"};<br /> for(i=0;i<5;i++)<原创 2010-09-13 16:11:00 · 1578 阅读 · 0 评论 -
一个把整数32位列出来
<br />#include<stdio.h><br />int bit32(int a)<br />{ <br /> int i;<br /> unsigned b,a1[32];<br /> for(i=0;i<32;i++)<br /> {<br /> b=a; //把有符号整型转换成无符号整型,位运算需要无符号整型<br /> b<<=31-i;原创 2010-09-13 00:29:00 · 803 阅读 · 0 评论 -
数值名,数组首地址,数组指针
这几天上数组与指针时,对于这三个概念一直都很模糊。什么地址常量不可以运算,什么指针加一就是加四个字节等等...#includeint main(void){ int a[3][4],b[3]; printf("sizeof(a)is:%d/n",sizeof(a)); printf("sizeof(a+0)is:%d/n",sizeof(a+0)); printf("sizeof(b)is:%d/n",sizeof(b)); printf("sizeof(b+0)is:%d/n原创 2010-09-13 01:47:00 · 520 阅读 · 0 评论 -
数据类型
数据类型:有基本型,及其构造类型。还有布尔型。 其实C语言和C++是两种不同的计算机语言。 基本类又分为整型,实型,字符型。 整型又可以分为两个类型,一个是按照有符号和无符号,还有一种就是字节数。按照字节数又分为短型,一般,长型。 实型其中有一位是用来储存符号位的,所以没有有符号无符号之分,本质就是有符号的。按照字节分单精度,双精度,长双精度。 一般来说实型的字节数大于或者等于整型字节数。一般来说整型的位数就是操作系统位数。字节是数据类型的基本单位。 程序: #incl原创 2010-09-09 23:27:00 · 400 阅读 · 0 评论 -
单链表函数
STU deletelist(STU head){STU temp;temp=head; while(temp!=NULL) { head = temp->next; free(temp); temp = head;} return head;}int main(){if(deletelist(head)!=NULL)printf("The list not delete!"); }原创 2010-10-04 23:17:00 · 500 阅读 · 0 评论 -
关键字static的作用是什么
对于这个static的作用,文字表述有三项;1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。1.1#includeint add( ){ int x=2; x++; return x; }int main(void原创 2010-10-05 00:04:00 · 532 阅读 · 0 评论 -
程序的变量常量保存问题
<br />程序:<br />#include<stdio.h><br />int main(void)<br />{<br />char str[]="abc";<br />char str1='a';<br />"efg";<br /> <br /><br />printf("%p/n",str);<br />printf("%c/n",*str);<br />printf("%c/n",*(str+1));<br />printf("%c/n",*(str+2));<br />printf("%c/n原创 2010-10-10 19:37:00 · 444 阅读 · 0 评论 -
文件描述符,文件流,文字指针
<br />文件描述符:<br />文件流:<br />文件指针:原创 2010-10-11 01:06:00 · 477 阅读 · 0 评论 -
队列
<br />1.利用数组来实现队列,缺点是数组有限定大小。<br />程序<br />/***********************************************/<br />//数组实现队列功能<br />//while(1);是在dev -c++4.92编译环境下可见<br />//C语言,缺点设置了四个全局变量<br />//int queue[SIZE];int *head=queue;int *tail=queue;int count;<br />/**************原创 2010-10-07 23:59:00 · 291 阅读 · 0 评论 -
队列
<br />/********************************************************/<br />//struct queue<br />/********************************************************/<br />#define queue_size 50<br />struct queue<br />{<br /> TYPE qu_a[queue_size];<br /> int front;<br /> int原创 2010-10-06 23:03:00 · 286 阅读 · 0 评论 -
栈
/***************************************************///这是用C语言写的一个栈/***************************************************/#include#include#include/************************************************************///define stack//st_p ready to push data/***********原创 2010-10-06 20:43:00 · 326 阅读 · 0 评论 -
递归
对于递归的理解就是循环,函数就是循环体的一部分。 相对于循环体来说就是参数少。推出机制就是判断语句,其中的退出机制更比循环灵活,没有明确的次数。 一般不用返回确定值,只是过程打印出来。题目1:不调用系统函数,把字符串逆序打印出,例如“ABCDabcd123”打印出“321dcbaDCBA”程序:/************************************///while(1){}死循环,为在dev-c++看到结果/*********************************原创 2010-10-09 23:35:00 · 339 阅读 · 0 评论 -
利用两个栈来构造队列
<br />#include<iostream><br />using namespace std;<br />/************************************************************/<br />//define stack class<br />//st_p ready to push data<br />/***********************************************************/ <br />#define原创 2010-10-06 23:51:00 · 334 阅读 · 0 评论 -
二分法
<br />对于顺序数组,可以通过二分法来查找。<br />程序:<br />#include<stdio.h><br />#include<stdlib.h><br />#define NUM 4<br />int main(void)<br />{<br /> int a[NUM],i,x,bot,mid,top;<br /> printf("pls in put %d data:/n",NUM);<br /> for(i=0;i<NUM;i++)<br /> scanf("%d",&原创 2010-09-13 22:38:00 · 316 阅读 · 0 评论