C&C++
文章平均质量分 81
lvyuan30276
这个作者很懒,什么都没留下…
展开
-
小程序(一) 字符串过滤
题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。要求实现函数:void stringFilter(constchar*pInputStr, long lInputLen, char*pOutputStr);原创 2013-07-01 16:26:18 · 6054 阅读 · 0 评论 -
小程序(十二)调整数组存放方式
给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。#include#include//#define N 8void maopao_sor原创 2013-08-12 19:22:28 · 1767 阅读 · 1 评论 -
小程序(十六)简单四则运算
问题描述:输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值注:3.1、表达式只含 +, -, *, / 四则运算符,不含括号3.2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况3.3、要考虑加减乘除按通常四则运算规定的计算优先级3.4、除法用整数除法,即仅保留除法运算结果的整数部分。比如8/3=2。输入表达式保证无0作为除数情况发生3原创 2013-08-18 16:10:31 · 5254 阅读 · 0 评论 -
判断 ( [ { 是否匹配
写一个函数,检查一个表达式中的括号是否合法,括号包括{},[],()。思路:用栈,每次找到关键字是括号的时候,检查栈顶元素是否为匹配的括号。如果是匹配的,栈顶元素出栈,否则新的括号入栈。检查所有的括号元素后,如果此时栈为空,则表达式正确,否则表达式错误。#include #include#includeusing namespace std;stack array;原创 2013-10-23 23:02:05 · 818 阅读 · 0 评论 -
寻找单链表的中间节点
利用快慢指针原理:设置两个指针*search,*mid都指向单链表的头节点。其中*search的移动速度是*mid的两倍。当*search指向末尾节点的时候,mid正好就在中间了。#include #include typedef struct node{ int data; node *next;}node,*linkList;void createlist(linkLi原创 2013-10-06 20:56:33 · 749 阅读 · 0 评论 -
一道C语言函数值传递问题
此题,不仔细想想,很容易答错哦#include#includevoid fun(int *a, int *b, int *c){ int *temp; temp=a; a=b; b=temp; *temp=*b; *b=*c; *c=*temp;}/*void fun(int *a, int *b, int *c){原创 2013-10-03 16:23:04 · 1325 阅读 · 1 评论 -
关键字static的作用
关键字static的作用 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1)在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(该变量存放在静态变量区)。2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3) 在模块内转载 2013-10-02 10:18:50 · 603 阅读 · 0 评论 -
C++中变量的存储位置及其作用域
变量可以分为:全局变量、静态全局变量、静态局部变量和局部变量。按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。按作用域分,全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数返回后失效。全局转载 2013-09-16 16:26:46 · 745 阅读 · 0 评论 -
C语言分解质因数
#include #includeint main(){ int n = 28; int i = 2; int b = n; while(i<n) { if(n%i==0) { printf("%d\n",i);//将重复的因数全部除完 n = n/i; } else i++; } pri原创 2013-09-14 11:18:09 · 1478 阅读 · 0 评论 -
中缀表达式转后缀表达式
转自:点击打开链接我们在数学中常见的计算式,例如2+(3*4)叫做中缀表达式。表达式中涉及到了多个运算符,而运算符之间是有优先级的。计算机在计算并且处理这种表达式时,需要将中缀表达式转换成后缀表达式,然后再进行计算。 中缀表达式转后缀表达式遵循以下原则: 1.遇到操作数,直接输出; 2.栈为空时,遇到运算符,入栈转载 2013-08-18 16:51:50 · 720 阅读 · 0 评论 -
小程序 (四)字符串压缩
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"要求实现函数:原创 2013-07-02 10:14:50 · 1584 阅读 · 0 评论 -
小程序(八) 字符串替换
#include #include#includevoid StrReplace(char* str, char* strFind, char* strReplace, char* result_str){ int len_str = strlen(str); int len_strFind = strlen(strFind); int len_strReplace = strl原创 2013-07-04 22:30:21 · 6652 阅读 · 0 评论 -
小程序 (五) 字符串分离
#include #include #include void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr) /*【输入】 pInputStr: 输入字符串 lInputLen: 输入字符串长度 【输出】原创 2013-07-04 10:38:45 · 6333 阅读 · 3 评论 -
小程序(十一)约瑟夫环的问题
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。#include#includetypedef struct node{ int num; struct node *next;}node,*原创 2013-08-11 23:35:46 · 826 阅读 · 0 评论 -
小程序(九)找出数组中出现最多的数字以及它的出现次数
例如,输入为整型数组 a[] = [2,3,4,55,65,]则输出:出现频次最多的数:5该数次出现的次数:3原创 2013-07-18 12:06:34 · 1497 阅读 · 0 评论 -
小程序(十四)高精度整数加法
问题描述:在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在32位宽处理器计算机中,参与运算的操作数和结果必须在-2^31~2^31-1之间。如果需要进行更大范围的十进制整数加法,需要使用特殊的方式实现,比如使用字符串保存操作数和结果,采取逐位运算的方式。如下:9876543210 + 1234567890 = ?让字符串 num1="9876543210"原创 2013-08-17 00:21:13 · 1402 阅读 · 0 评论 -
小程序(六) 随机数按计数输出问题
约瑟夫问题 输入一个由随机数组成的数列(数列中每个数均是大于0的整数,长度已知),和初始计数值m。从数列首位置开始计数,计数到m后,将数列该位置数值替换计数值m,并将数列该位置数值出列,然后从下一位置从新开始计数,直到数列所有数值出列为止。如果计数到达数列尾段,则返回数列首位置继续计数。请编程实现上述计数过程,同时输出数值出列的顺序 比如:输入的随机数列为:3,1,2,4,初始计数原创 2013-07-04 17:04:15 · 891 阅读 · 0 评论 -
小程序(七)C语言 输入字符 检测后每个单词逆序输出
比如说,输入 He is a boy.那么,输出 eH si a yob.#include#includevoid comp(char * inputStr, int len , char *outputStr){ char *temp = (char*)malloc(sizeof(char)*len); int cont = 0; int n = 0; whi原创 2013-07-04 20:02:39 · 1788 阅读 · 0 评论 -
小程序(十)字符串替换2
#include #include #include int comp(char *src,char *subsrc,int m,int n){ while( *src++ == *subsrc++ && m!=0 && n!=0 ) { m--; n--; } return n;}int comp1(char *src,char *s原创 2013-08-08 21:26:16 · 1918 阅读 · 0 评论 -
小程序(十三)求一个字符串的最大回文子串
例如:输入 abcdefedaaa,输出 defed输入abcdeffedaaa,输出deffed我们要考虑,最大子串的奇偶情况。#include#include#includevoid huiwen(char s[],int len, char output[]){ int i,j,max=0; int x,y; for(i=0;i<len;i++)原创 2013-08-16 10:21:10 · 809 阅读 · 0 评论 -
小程序(十五)删除一个字符串中出现最少的字符
将一个字符串中出现次数最少的字符删除,这个字符串只有小写字母,不考虑空格。#include#include#includechar *delChar(char *s,int iLen){ char* p = (char*)malloc(sizeof(char)*iLen); int pos,i,j; int num[26] = {0};//存储每个字符出现的次数 f原创 2013-08-17 14:30:51 · 1352 阅读 · 0 评论 -
小程序(三)数组排序问题1奇偶数组排序
对一个数组,将数组中偶数从大到小排序,奇数从小到大排序,奇数和偶数交叉着放且输出数组第一位放奇数 若奇数和偶数不等长,则把剩下的直接放到数组中。思路:先进行奇偶判断,得到奇数和偶数数组。然后对两数组排序,进行长度判断,最后组织数据。#include#include#includevoid swap(int *arr_part,int n){ int t原创 2013-07-02 10:09:07 · 2386 阅读 · 0 评论 -
中缀表达式转化为前缀和后缀表达式
35,15,+,80,70,-,*,20,/ //后缀表达方式(((35+15)*(80-70))/20)=25 //中缀表达方式 /,*,+,35,15,-,80,70, 20 //前缀表达方式 人的思维方式很容易固定~~!正如习惯拉10进制。就对2,3,4,8,16等进制不知所措一样~~!人们习惯的运算方式是中缀表达式。而碰到前缀,后缀方式。转载 2013-08-18 16:44:09 · 797 阅读 · 0 评论 -
利用栈实现括号匹配算法
#include#include#include#includeusing namespace std;#define OK 1#define ERROR 0int parent_match(char *s,int len){ stack st; int e; while(*s) { switch(*s) { case '(':原创 2013-08-17 16:36:47 · 1032 阅读 · 0 评论 -
编程之美(二)求二叉树中两节点的最大距离
一,非递归算法:#include #include #includeusing namespace std;struct Node{ bool _visited; Node* left; Node* right; int maxLeft; int maxRight; Node() { _visited =原创 2013-08-14 21:58:44 · 776 阅读 · 0 评论 -
C语言函数的问题1
#include #includevoid exexe(char * p,int len){ while(*p++) len++;}int main(){ int len = 0 ; char * p = "dadasdfas"; exexe(p,len); printf("%s\n",p); printf(原创 2013-07-02 10:12:53 · 693 阅读 · 0 评论 -
include中双引号和尖括号的区别
include包含头文件的语句中,双引号和尖括号的区别是什么? #incluce ""格式:引用非标准库的头文件,编译器从用户的工作目录开始搜索。双引号表示先在程序源文件所在目录查找,如果未找到则去系统默认目录查找,通常用于包含程序作者编写的头文件;尖括号表示只在系统默认目录或者括号内的路径查找,通常用于包含系统中自带的头文件。尖括号:在包含文件目录中去查找(包含目录是由用户在设置环境时设原创 2013-07-01 16:26:16 · 1723 阅读 · 0 评论 -
关于静态数据成员与静态成员函数的…
#includeusing namespace std;class commodity{ public: commodity(int n,int q,floatp):num(n),quantity(q),price(p){} voidtotal(); staticfloat average(); staticvoid display();//原创 2013-07-01 16:26:08 · 694 阅读 · 0 评论 -
转载:ofstream和ifstream详细用法
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"WriteStdout"2原创 2013-07-01 16:26:05 · 519 阅读 · 0 评论 -
构造函数的重载问题
#includeusing namespace std;class Date{public: Date(int=1,int=1,int=2005);//使用了全部是默认参数的构造函数后,不能再定义重载构造函数。如果 //Date(int,int); // 下面几行不注释掉,就是出现 Date d2(12,30)不知道是调用哪个构造 //Date(int)原创 2013-07-01 16:26:03 · 966 阅读 · 0 评论 -
C++中成员函数调用数据问题
#includeusing namespacestd;classBox{public:Box(intl,int w,int h):length(l),width(w),height(h){}//构造函数voidvolume(); voiddisplay();private:intlength;intwidth;intheight; int v原创 2013-07-01 16:26:01 · 1223 阅读 · 0 评论 -
C++: 二分法查找
//二分法查找#includeusing namespace std;int BinarySearch(int a[],int x,int n);int main(){ inta[13]={1,4,6,7,8,12,15,16,18,23,26,34,46}; int x =18; int y; int n =sizeof(a)/sizeof原创 2013-07-01 16:25:57 · 566 阅读 · 0 评论 -
C++笔记(二):for循环问题
如上题所述,y=i++实际上是个递增条件,仅在第二次循环开始时才执行。原创 2013-07-01 16:25:55 · 641 阅读 · 0 评论 -
C++笔记(一):指针的用法
#includeusing namespace std;void swap(int &p,int&q)//引用{int temp;temp = p;p = q;q = temp;}void swap2(int *p,int*q)//指针{ int temp; temp = *p;*p = *q;*q = temp; //retur原创 2013-07-01 16:25:52 · 623 阅读 · 0 评论 -
关于在for循环的switch语句使用break和continue问题
//循环的定义是程序段执行完了以后,再次判断条件,若条件为真,则继续执行该程序段。而在switch结构当中,只是该程序段执行完了之后,就继续执行下面的语句。因此很明显switch结构不是循环。循环有重复、反复执行的功能。//另外break的用处可以有两个://第一:用在switch结构当中的case语句的后面,作用是不再执行后面的case语句,结束switch结构。//第二:用在循环当原创 2013-07-19 16:38:12 · 10192 阅读 · 0 评论 -
整数转化为字符串和字符串转化为整数
//整数转化为字符串#includeint main(){ int num=12345,i=0,j=0; char temp[10],str[10]; while(num) { temp[i] = num%10 + '0'; i++; num/=10; } temp[i] = 0; //为什么等于0就可以,因为将temp定义为字符串数组原创 2013-07-22 16:37:19 · 746 阅读 · 0 评论 -
C中strcpy漏洞
C、C++】strcpy应用中出现的问题转自:http://hi.baidu.com/raoxj/item/37e6bb22c0c46f3394f62b7b#include #include int main(void){ char s[] = "123456789"; char d[] = "123"; strcpy(d,s); pri转载 2013-07-22 17:40:48 · 1660 阅读 · 0 评论 -
编程之美(三)队列中取最大操作数的问题
#include //#include //#include #includeusing namespace std;#define MAXN 100class Stack{ public: //构造函数,初始化堆栈: //|stackTop|指向当前堆栈的顶部元素, //|maxStackItemIndex|存储当前堆转载 2013-08-14 22:00:11 · 677 阅读 · 0 评论 -
编程之美(一)单链表只遍历一次实现元素反转
#include#include#includetypedef struct node{ int data; struct node *next;}node,* Linklist;void print(Linklist &L,int len){ Linklist p; p = L; p = p->next; while(p) { printf("%2原创 2013-08-13 16:40:24 · 999 阅读 · 0 评论 -
查找(一)静态查找的顺序查找和 有序折半查找
数据的静态查找:顺序表查找和 有序表的折半查找顺序查找: 将数据与待查找的元素相比较,如果找到相同的元素,就表示查找成功,否则查找失败。值得注意的是,在程序中设置了一个哨兵项,位于数组的第0个合肥位置,这样做的好处是可以更方便的判断什么时候循环应该终止,减小循环中的比较次数,对提高效率有很大帮助。有序表的折半查找:要先将数组的顺序排成有序的,比如说非降序的,然后再用折半查找法。折半原创 2013-08-06 11:53:17 · 2289 阅读 · 0 评论