代码改变世界

递归经验

2013-02-04 20:58 by Dr.Ray, 140 阅读, 0 推荐, 收藏,
摘要:首先判断递归是否停止,然后判断不同情况下进行的递归,如power函数double power(int x,int n){ if(n == 1)return x;//判断是否停止递归;else if(n%2 == 0)return power(x,n/2)*power(x,n/2); else if(n%2 == 1) return power(x,(n-1)/2)*power(x,(n-1)/2)*x;} 阅读全文

5.3.1 6174问题

2013-02-04 17:37 by Dr.Ray, 118 阅读, 0 推荐, 收藏,
摘要:1、for循环第一栏只能支持一个语句的初始化2、注意运用状态变量 阅读全文

最短周期串

2013-02-04 16:56 by Dr.Ray, 217 阅读, 0 推荐, 收藏,
摘要:若t为最小周期,则a[i]==a[i%t];收获:1、 strlen不计末尾\n,\0的长度,即 a[1000],在标准输入中输入huhuhu并回车,strlen(a)==6;注意,遍历该数组要i<=strlen(a)-1别忘了-1;2、 0%k==03、 for(int i=0;i<10;i++) { int temp=0; """"""""""""} 每次i值改变,进入循环体后都会新建一个 temp 阅读全文

strcmp函数

2013-02-01 11:05 by Dr.Ray, 186 阅读, 0 推荐, 收藏,
摘要:strcmp(const char *a,const char *b)比较a,b字符串的大小。从首位开始,相同则比价下一位,出现不同则返回此位之差。比如:a="abcde";b="abcdf";strcmp(a,b)==-1;a.b中存在未赋值的区域没关系。如果赋值区域子母都相同,而赋值区域长度不同,则返回两字符串长度之差,比如:a="qqq";b="qqqw";strcmp(a,b)==-1; 阅读全文

2013-02-01 10:18 by Dr.Ray, 167 阅读, 0 推荐, 收藏,
摘要:比较简单#include<stdio.h> #include<stdlib.h> #define max 5 struct stack { int head,tail; int *num; };void inistack(stack * p) { p->num=(int *)malloc(6*sizeof(int)); p->head=0; p->tail=-1; }void push(stack * p,int a) { if(p->tail==max) { printf("stack overflow\n"); retur 阅读全文

队列

2013-02-01 09:43 by Dr.Ray, 205 阅读, 0 推荐, 收藏,
摘要:经验总结:1、队列必须用结构体指针,否则调用函数时也是传值调用,无法改变结构体变量的值。2、队列中的数组用指针表示较好。3、在写printqueue函数时,我的码会导致当i=max,i=0,后无法让i=0与p->tail判断是否相等,导致死循环。以后注意在多重选择结构语句时验证是否每一个值都会被相应的判断语句验证一遍下面是代码。已经过编译验证为正确#include<stdio.h> #include<stdlib.h> #define max 5struct queue { int head,tail; int *num; };void iniqueue(queu 阅读全文