
C
文章平均质量分 82
yangyme
这个作者很懒,什么都没留下…
展开
-
利用C语言读取txt文档的数据保存到数组中
参考优快云论坛中的:http://bbs.youkuaiyun.com/topics/340043747利用下面程序完成利用C语言读取txt文档中的数据,并利用二维数据保存。在visual studio 2010 中实现:#include#include/*** 将txt文档里面的数据,保存到数组里*/#define N 512 //4列#defi转载 2013-04-25 10:37:05 · 17725 阅读 · 0 评论 -
大整数加法
#include #include #include void add(char *a,char *b,char *s){int a_len=strlen(a);int b_len=strlen(b);int i,temp,k;char *a0=(char *)malloc(sizeof(char)*b_len);char *b0=(char *原创 2013-09-14 15:52:31 · 567 阅读 · 0 评论 -
大整数乘法-C语言实现
因为字符串高地址保存的是高#include #include #include void BigMul(char *a,char *b){ int a_len=strlen(a); int b_len=strlen(b); int i,j,n,temp,t; int *c=(int *)malloc(sizeof(int)*a_len); int *d=(int *)mal原创 2013-09-14 11:35:51 · 2513 阅读 · 1 评论 -
数组分割—详细介绍(C语言实现)
这主要结合《编程之美-2.18数组分割》来实现,个人觉得《编程之美》中讲得不是特别详细,本人结合新浪微博中“数组分割问题-详细版”的介绍以及自己根据0-1背包问题作出如下实现思想,其中主要思想还是要感谢新浪微博中“数组分割问题-详细版,http://blog.sina.com.cn/s/blog_66223402010164ux.html”的版主的介绍与分析:《编程之美》2.18解法二中提到,原创 2013-09-29 15:56:39 · 9054 阅读 · 0 评论 -
结构体数组排序
在对结构体数组排除时,首先确定需要排序数组的关键字,并且在排序过程中不是交换关键字的顺序,而是应该交换这个结构的地址,从而使得结构体中的每项能够对应的改变;其中对应的代码如下:#include #include struct Line{ int low; int high;};void quicksort(struct Line a[],int l,int h){原创 2013-09-30 10:22:27 · 6982 阅读 · 0 评论 -
区间重合判断(C语言实现)
问题描述:给定一个源区间[x,y](y>=x)和N个无序的目标区间[x1,y1],[x2,y2],[x3,y3],......[xN,yN],判断源区间[x,y]是不是在目标区间内?例如给定源区间[1,6]和一组无序的目标区间[2,3],[1,2],[2,9],[3,4],即可认为区间[1,6]在区间[2,3],[1,2],[2,9],[3,4]内。解决方法:1.首先对无序的目标区原创 2013-09-30 11:18:27 · 6089 阅读 · 1 评论 -
字符串移位包含的问题
给定两个字符串是s1和s2,要求判定s2是否能够被s1做循环移位得到的字符串包含。假设,给定s1=AABCD和s2=CDAA,返回true,给定s1=ABCD和s2=ACBD,返回false。如果直接进行循环移位,再进行字符串包含的判定,从而遍历其所有的可能性,但是这种算法的时间复杂度比较高,如字符串的长度较大,显然效率很低;所以我们采用空间换时间的方法来实现比较。代码如下:#incl原创 2013-09-30 16:55:12 · 872 阅读 · 0 评论 -
电话号码对应的英语单词
具体问题描述见:《编程之美》-3.2 电话号码对应英语单词,在本文中主要根据《编程之美》中的思想分别利用递归与非递归的思想实现了电话号码对应英语单词的构造实现,主要考虑了排列树的思想,利用遍历树中的每个叶子节点来实现所有单词的集合。对应文中的查找方法正如《编程之美》中介绍的方法一样,主要根据构造的字典去匹配查找,其中具体思路请参考《编程之美》。#include #include #in原创 2013-10-03 16:31:06 · 2171 阅读 · 0 评论 -
最短摘要生成问题
其中查找主要思想与KMP算法思想比较相近,其中对于英文摘要,因为每一个英文字符对应一个ASCLL码,所以可以利用博客“http://blog.youkuaiyun.com/hiphopmattshi/article/details/8026722”的思想,定义一个数组来进行匹配。而对于中文摘要,因为中文字没有对应的ASCLL码,所以可以定义数组形指针来分别匹配,但是这里的复杂度相对前者要大,而空间复杂度要小。原创 2013-10-10 10:12:05 · 735 阅读 · 0 评论 -
求数组中最大递增子序列(C)
编程之美这本书里面就有关于这道题的一些解法,求一个一位数组中的最长序列的长度。例如,在序列5,-1,2,-3,4,-5,6,9,-7中,最长递增序列是-1,2,4,6,9.其中编程之美这本书中,主要讨论了对求最长序列的数组进行了讨论,其中代码如下:int i,j; int maxlen=1; max_array[1]=a[0]; max_array[0]=-8; for (i原创 2013-09-28 10:31:46 · 1605 阅读 · 0 评论 -
重建二叉树 C语言实现
主要根据编程之美中利用前序与中序遍历实现二叉树的重构。其中对于前序遍历中的每一个节点都是当前子树的根节点这一理论来对中序遍历进行划分。并且也实现了根据中序遍历与后序遍历实现二叉树的重构,其中对于后序遍历主要要注意其中后序遍历的最后一个元素表示的是根节点这一思想来实现。其中对于利用前序遍历与中序遍历实现二叉树的重构的算法思想可以参考博客http://blog.youkuaiyun.com/hinyunsin原创 2013-11-08 20:01:58 · 3331 阅读 · 0 评论 -
求二叉树中节点的最大距离算法(C)
如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。书中对这个问题的分析是很清楚的,我尝试用自己的方式简短覆述。计算一个二叉树的最大距离有两个情况:情况A: 路径经过左子树的最深节点,通过根节点,再到右子树的最深节点。情况B: 路径不穿过根节点,而是左子树或右子树原创 2013-11-13 22:19:53 · 956 阅读 · 0 评论 -
队列中取最大值操作
这是一个要在队列中记录最大值的问题,但每次进队或出队又不能通过遍历去检测最大值的变化。用两个堆栈去实现一个队列是比较常见的方法,书中巧妙的用到了此方法,这样问题就转化为堆栈中取最大值操作问题。由于堆栈的变化只在栈顶,借助反向推导的思想: 由于在Push的过程中,最大值只与某一些值有关,这些值会在Push的过程中形成一个有序的链式结构。如Push(1,2,6,4,5,2,7,4)原创 2013-11-13 16:05:31 · 1047 阅读 · 0 评论 -
蚂蚁爬杆问题
问题描述:有一根27厘米长的细木杆,在第3厘米,7厘米,11厘米,17厘米,23厘米这五个位置上各有一只蚂蚁,木杆很细,不能同时通过两只蚂蚁,开始时,蚂蚁的头朝向左还是右是任意的,他们只会朝前走或掉头,但不会后退,当两只蚂蚁相遇后,蚂蚁会同时掉头朝反方向走,假设蚂蚁们每秒钟可以走1厘米的距离。求所有蚂蚁都离开木杆的最小时间和最大时间。解决方法:所有蚂蚁都离开木杆的最小时间相当于每只蚂蚁离开原创 2013-12-18 08:59:11 · 895 阅读 · 0 评论 -
求字符串中最长回文子串
问题描述: 给定一个字符串S=A1A2...An,要求找出其最长回文子串(Longest Palindromic Substring)。所谓回文子串就是S的某个子串Ai...Aj为回文。例如,对字符串S=abcdcbeba,它的回文子串有:bcdcb,cdc,beb,满足题目要求的最长回文子串为bcdcb,其长度为5解法描述:解法1: 利用全部遍历的原创 2014-01-21 15:06:45 · 1173 阅读 · 0 评论 -
周期串问题
如果一个字符串可以由某个长度为k的字符串重复多次得到,则该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。样例输入:helpshelpshelpshelps样例输出:5#include #include #include void cycle_length(char *a,int lengt原创 2014-01-21 14:47:27 · 5910 阅读 · 5 评论 -
字符串处理转换
问题描述: 在给定字符串中找出单词( “单词”由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等;另外单个字母不算单词);找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次;如果整个输入的字符串中没有找到单词,请输出空串。输出的单词之间使用一个“空格”隔开,最后一原创 2013-09-12 14:10:25 · 561 阅读 · 0 评论 -
字符串排序
void strsort(char *s[],int n){ int i,j; char *t; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(strcmp(s[i],s[j+1])) { t=s[i]; s[i]=s[j]; s[j]=t; } } }}原创 2013-09-11 16:01:06 · 692 阅读 · 0 评论 -
提取字符串中的元音字母并排序
题目描述:有一字符串,里面可能包含英文字母(大写、小写)、数字、特殊字符,现在需要实现一函数,将此字符串中的元音字母挑选出来,存入另一个字符串中,并对字符串中的字母进行从小到大的排序(小写的元音字母在前,大写的元音字母在后,依次有序)。说明:1、 元音字母是a,e,i,o,u,A,E,I,O,U。2、 筛选出来的元音字母,不需要剔重;3. 最终输出的字符串,小写元音原创 2013-09-10 22:27:18 · 3144 阅读 · 0 评论 -
复数矩阵乘法C语言实现
来至http://blog.youkuaiyun.com/gtatcs/article/details/8887082;下面代码参考TI的实现:[cpp] view plaincopy"font-size:14px;">/* NAME转载 2013-05-08 15:13:22 · 2567 阅读 · 0 评论 -
C语言中free函数
一、动态存储分配在数组一章中,曾介绍过数组的长度是预先定义好的,在整个程序中固定不变。C语言中不允许动态数组类型。例如:int n; scanf("%d",&n);int a[n];用变量表示长度,想对数组的大小作动态说明,这是错误的。但是在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定。对于这种问题,用数组的办法很转载 2013-05-24 09:34:18 · 1062 阅读 · 0 评论 -
C/C++中printf和C++中cout的输出格式
一、 Printf 输出格式C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型,其中方括号[]中的项为可选项。各项的意义介绍如下:1.类型类型字符用以表示输出数据的类型,其格式符和意义下表所示:表示输出类型的格式字符 格式字符意义a转载 2013-05-24 11:08:17 · 784 阅读 · 0 评论 -
C语言之详解#ifdef等宏及妙用
这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当 ... 这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时转载 2013-05-27 19:39:07 · 691 阅读 · 0 评论 -
二维数组定义以及动态分配空间
下面三种定义形式怎么理解?怎么动态分配空间? (1)、int **Ptr; (2)、int *Ptr[ 5 ]; 我更喜欢写成 int* Prt[5]; (3)、int ( *Ptr )[ 5 ];此文引自网上,出处不详,但是觉得非常好。略改了一点。多维数组一向很难,一般都采用一维数组,但是一旦要用到还真是头疼。 闲话少说,这里我就以三个二维数组的比较来展开讨论:转载 2013-06-05 14:29:06 · 861 阅读 · 1 评论 -
malloc函数详解
一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free(转载 2013-06-24 09:40:05 · 570 阅读 · 0 评论 -
C中结构体的存储分配
今天在网上看到C中结构体的存储分配,先复制如下:对于C语言中结构体所占的存储空间的大小,也一直是笔试面试的常客,今天好好看了一下这方面,以前一直以为很清楚了,今天通过各种实际测试举例,发现原来还是没有搞透彻,好在现在是彻底懂了,所以和大家分享,希望能有所帮助。提到结构体,相信大家都知道元素存储要对齐,话是没有错,只是这个“对齐”里面包含了很多微妙的东西。首先详细的给出结构体内存分配原创 2013-06-28 09:42:27 · 846 阅读 · 0 评论 -
线性表之顺序存储结构--C实现
说在前面数据结构和算法是程序设计的灵魂。坦诚的说,我在这方面是弱的可以。虽然工作这么多年了,因为种种借口,这块知识一直是我的痛处。曾经在面试时大言不惭的说,这些知识在工作中很少用到,所以当年学习的东西早就还给学校了。其实不然,失去了灵魂的程序员如我,总是要逆袭的。所以以后的学习中会有一些如孩童笔记般的文章出现在我的blog中,请大师们不要嘲笑,要提携。定义线转载 2013-06-29 09:17:55 · 823 阅读 · 0 评论 -
线性表之单链表
[cpp] view plaincopy/* * LinkedList * linc * 2013.2.26 */ #include #include #include #define OK 1 #define ERROR -1 #define TURE 1 #define转载 2013-06-29 09:20:27 · 581 阅读 · 0 评论 -
线性表的顺序存储实现及相关操作 C语言版
[cpp] view plaincopy/* 线性表的顺序存储实现 C语言版本 作者:Shmily 日期:2011年8月30日 编译环境 VC++6.0 */ /**************************************************/ #include /****转载 2013-06-29 21:20:29 · 690 阅读 · 0 评论 -
vim 安装与vimrc的配置问题
折腾了很久,终于搞懂vim的配置。1.首先安装vim,sudo apt-get install vim2.安装好vim,以后在命令里面输入:vi ~/.vimrc.现在就已经进入vimrc的配置界面。3.在配置文件里面输入: " This line should not be removed as it ensures that various options ar原创 2013-06-29 17:35:52 · 847 阅读 · 0 评论 -
二级指针变量与数组
在C语言中,数组名就是一个指针常量,保存数组的首地址。因为数组名是一个常量指针常量,不能修改其指向的值,因此可以定义一个指针变量指向数组。这样使用数组名加下标可访问数组中的元素,使用指针名加下标也可访问数组中的元素。这些在本章前面已经介绍过了。现在如果再定义一个二级指针变量,让其指向一级指针,就可使用二级指针变量操作数组。例如,使用以下语句定义二级指针变量:int a[10];转载 2013-07-01 14:40:11 · 4414 阅读 · 0 评论 -
串的模式匹配-KMP算法
一、KMP算法的思想由D.E.Knuth、J.H.Morris和V.R.Pratt共同提出了一个改进算法,消除了Brute-Force算法中串s指针的回溯,完成串的模式匹配。时间复杂度为O(s.curlen+t.curlen),这就是Knuth-Morris-Pratt算法,简称KMP 算法。1、KMP算法形成过程:若S[i]≠P[j] ,为使主串指针 i不回溯转载 2013-07-04 19:58:22 · 921 阅读 · 0 评论 -
堆 和 栈的 区别(经典)
非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据转载 2013-07-30 14:36:13 · 584 阅读 · 0 评论 -
C语言中常用字符串函数锦囊
C语言字符串函数 函数名: stpcpy 功 能: 从数组中拷贝一个字符串到另一个数组 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) { char string[10];转载 2013-09-06 10:49:32 · 797 阅读 · 0 评论 -
malloc与new的区别
【背景介绍】前段时间参加腾讯面试,面试官让我说说malloc与new的区别;当时一下懵逼了,当时想到的只有new是C++的,在申请内存的时候应该会调用new的构造函数进行申请内存与初始化;以及new对应的是释放是delete。malloc对应的是C语言中的内存申请函数,其他更多的就不知道了。查询资料发现new和malloc的差别比较多,根据在网上查询到的资料进行总结。主要参考博客:https://...原创 2018-03-24 10:31:06 · 285 阅读 · 0 评论