摘要: 考虑:加上一个负数,和就会变小。int MaxarySum(int a[], int Len){ int MaxSum = 0; //保存最大值 int CurSum = 0; int HeadIndex = 0; int EndIndex = 0; int i; for (i = 0; i MaxSum) { MaxSum = CurSum; //大于MaxSum则更新MaxSum EndIndex = i; } if (CurSum MaxSum) ... 阅读全文
posted @ 2013-09-28 21:33 dingsd 阅读(193) 评论(0) 推荐(0)
摘要: 利用一个辅助的顺序表来先定义栈和顺序表typedef struct _Seqlist { DataType array[MaxNum]; int len;}Seqlist,*PSeqlist;typedef struct _Stack { DataType array[MaxNum]; int len;}Stack,*PStack;入栈出栈时,都更新顺序表int PushStack(PStack sta,DataType key,PSeqlist list){ if (sta->len > MaxNum) { printf("Out of St... 阅读全文
posted @ 2013-09-24 23:03 dingsd 阅读(1123) 评论(0) 推荐(1)
摘要: 先定义一个单链表结构体:typedef int DataType;typedef struct _list { DataType data; struct _list *next;}List,*PList;相关操作:1,几个基本操作PList InsHead(PList *head,DataType x) //在头部插人{ PList newNode = (List *)malloc(sizeof(List)); //直接插入 newNode->data = x; newNode->next = *head; *head = newNode; ... 阅读全文
posted @ 2013-09-17 22:14 dingsd 阅读(261) 评论(1) 推荐(0)
摘要: 什么是递归?一个函数(方法)调用其本身,这种调用过程被称作递归 1、当一个函数(方法)调用自己时,如果编程中没有设定可以终止递归的条件检测,它会无限制地进行递归调用,所以需要谨慎处理。 2、递归一般可以代替循环语句使用。有些情况下使用循环语句比较好,而有些时候使用递归更有效。递归方法虽然使程序结构更优美,但其执行效率却没有循环语句高。1,求1+2+3+...+...nint sumX(unsigned int x){ if (x == 1) { return x; } else { return sumX(x-1) + x; }... 阅读全文
posted @ 2013-08-20 23:11 dingsd 阅读(259) 评论(0) 推荐(0)
摘要: 1、void *memcpy (void *dest, const void *src, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中,返回指针为dest的值。与memmove功能一样, 只是不能处理src和dest出现重叠.2、void *memmove (void *dest, const void *src, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中,返回指针为dest的值。不会发生内存重叠。3、int memcmp (const void *s1, const void *s2, size_t n); 比较s1所指 阅读全文
posted @ 2013-08-15 21:20 dingsd 阅读(204) 评论(0) 推荐(0)
摘要: 基本函数:1、size_t strlen (const char *s); 返回值是字符串s的长度。不包括结束符'/0'。2、char *strcat (char *dest, const char *src); 将字符串src添加到dest尾部,返回指针为dest的值。3、char *strchr (const char *s, int c); 在字符串s中搜索字符c。如果搜索到,返回指针指向字符c第一次出现的位置;否则返回NULL。4、char *strrchr (const char *s, int c); 在字符串s中搜索字符c。如果搜索到,返回指针指向字符c最后一次出 阅读全文
posted @ 2013-08-12 21:30 dingsd 阅读(238) 评论(7) 推荐(0)
摘要: 一、块读写 块读写主要涉及到两个函数fread和fwrite,这两个函数的原型是: unsigned int fread(void *buffer,unsigned int size,unsigned int n,FILE *fp); 从文件读取一组数据存放在首地址为buffer的内存空间中,size为一个数据块的大小,n为要读取的数据块的个数,若读取成功,则返回读取的数据的数据块的个数,否则返回0. unsigned int fwrite(const void *buffer,unsigned int size,unsigned int n,FILE *fp); 向文件中写入数据,写入成功返 阅读全文
posted @ 2013-08-09 14:57 dingsd 阅读(248) 评论(0) 推荐(0)
摘要: 一.字符读写 字符读写主要使用两个函数fputc和fgetc,两个函数的原型是: int fputc(int ch,FILE *fp);若写入成功则返回写入的字符,否则返回-1 int fgetc(FILE *fp); 若读取成功则返回读取的字符,否则返回-1注意: 1)对于fputc函数和fgetc函数,每次操作,fputc只能写入1个字节的数据,无论参数ch多大,只将其低8位的数据写入到文件中;fgetc 每次只能返回一个字节的数据。2)对于fgetc函数,若读取成功则返回读取到的字符,否则返回-1.这里面返回-1(即EOF)有两种情况:一种是读到文件结束已经没有任何字符可供读取了,另一种 阅读全文
posted @ 2013-08-09 11:13 dingsd 阅读(548) 评论(0) 推荐(0)
摘要: C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数。fopen函数的原型为 FILE* fopen(const char *path,const char *mode) 其中path为文件路径,mode为打开方式 1)对于文件路径,只需注意若未明确给出绝对路径,则默认该文件在工程的目录下。若需给出绝对路径,则注意转义字符'\',比如有文件test.txt存放在C盘根目录下,则文件路径参数值应为C:\\test.txt。 2)对于mode,主要由r,w,a,+,b,t六个字符组合而成。 r:只读方式,文件必须存在 w:只写方式,若文件存在,则原有内容会被清除 阅读全文
posted @ 2013-08-09 09:35 dingsd 阅读(537) 评论(0) 推荐(0)
摘要: 一.文本文件和二进制文件 文本文件的定义:由若干行字符构成的计算机文件,存在于计算机系统中。文本文件只能存储文件中的有效字符信息,不能存储图像、声音等信息。狭义上的二进制文件则指除开文本文件之外的文件,如图片、DOC文档。 事实上,无论是上面所定义的文本文件还是二进制文件,在计算机中存储都是以二进制的形式存储的,因此其本质并没有区别。所以广义上的二进制文件便指所有的文件。 通常意义下,我们所说的文本文件指只包含了纯文本信息的文件(通过手动编辑完成,包含的都是可显字符),二进制文件特指文件里面存储的是二进制代码的文件。至于为什么在计算机内存储的都是二进制数据,而给我们所呈现的确是文字、图像等信息 阅读全文
posted @ 2013-08-09 09:27 dingsd 阅读(165) 评论(0) 推荐(0)