c语言基础
a781558066
这个作者很懒,什么都没留下…
展开
-
【C语言】快速排序
#include "stdio.h"void quicksort(int *s, int l, int r){ int i = l; int j = r; int pivot = s[i]; if (i < j) { while (i < j) { while (ipivot) j--; if (i < j) {原创 2014-12-18 13:01:07 · 451 阅读 · 0 评论 -
【C语言】数字的字符串转化为 数字
#include /*这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数包含了任何非数字字符,函数就返回零。*/int ascii_to_integer(char *str){int i=0;while(*str!='\0'){if(*str'9')return 0;i*=10;原创 2015-03-10 22:54:45 · 2409 阅读 · 0 评论 -
【C语言】最大公约数(更相减损法)和(辗转相除法)
#include#include /* 编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。例如:输入传入(0 , 5)函数返回5,传入(10 , 9)函数返回1,传入(12 , 4)函数返回4*///更相减损法int fuc(int m,int n){ int i=0,temp,x; while(m%2==0 && n%2==0) //判断m和n能被多原创 2015-03-10 22:59:44 · 5245 阅读 · 0 评论 -
【C语言】厄密多项式
#include/* 厄密多项式*/int hermite(int n, int x){ if(n<=0) return 1; else if(n==1) return 2*x; else if(n>=2) return 2*x*hermite(n-1,x)-2*(n-1)*hermite(n-2,x);}int main(){ int n,x; puts原创 2015-03-10 22:51:53 · 736 阅读 · 0 评论 -
【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
/* 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)例如:"12" 返回12"-123" 返回-123函数原型:int my_atof(char *str)*/#include int my_atof(char *str){ int flag=0; int m=0; if(*str=='-') { flag=1; str++;原创 2015-03-10 22:57:25 · 13176 阅读 · 1 评论 -
【C语言】将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
#include /*编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)例如:"12.34" 返回12.34"-123.34" 返回-123.34函数原型:double my_atof(char *str){}*/double my_atof(char *str){ double m=0,n=0,x=1; int flag=1; in原创 2015-03-10 22:56:48 · 3528 阅读 · 0 评论 -
【C语言】编写一个函数实现n^k,使用递归实现
#include int fuc(int x,int n){ if(n!=1) return x*fuc(x,n-1); return 1; }int main(){ printf("%d\n",fuc(3,4)); return 0;}原创 2015-03-14 16:29:06 · 984 阅读 · 0 评论 -
【C语言】递归函数DigitSum(n)
//写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,//例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19#include int fuc(int x){ if(x!=0) return x%10+(fuc(x/10)); return 0;}int main(){ printf("%d\n",fuc(2138原创 2015-03-14 16:29:46 · 843 阅读 · 0 评论 -
【C语言】reverse_string(char * string)(递归实现)
递归实现reverse_string(char * string)函数。翻转 原来的字符串是改变 不是打印出来。/*编写一个函数reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。*/#include void reverse_string(char * string原创 2015-03-14 16:34:01 · 1206 阅读 · 0 评论 -
单链表的sort以及resver的实现(改变链表指向而非数值)
单链表的sort排序采用冒泡法,不是单纯的改变链表结点的值,而是通过改变物理结构上的指针域指向实现。 void sort(List *list){ if(list->size <=1)` //基本条件 return ; Node *p,*q,*pa,*temp; for(int i=0;i<list->size-1;i++)//控制总次数 {原创 2015-05-04 12:58:37 · 1734 阅读 · 0 评论 -
矩阵的排序
在一个m*n矩阵中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,按从小到大的顺序打印这个矩阵到一个一维数组中。如图,则应打印出1,2,2,4,4,6,7,8,8,9,9,10,11,12,13,15.思路:如果把它想成 合并m个大小为n的数组,那么思路将会很简单。 但是,矩阵的m和n为随机值,所以并不能想很简单的那种合并。 假如我们定义一个大小为m原创 2015-05-05 19:10:42 · 11814 阅读 · 0 评论 -
【C语言】函数参数中的const修饰符
通常,字符串操作函数原型中,都会在形参前面加上const修饰符,表示此指针不能用于修改字符串的值 比如:char *strcpy(char *strDest, const char *strSrc) 但是可不可以通过 在函数里定义一个指针指向strSrc,来改掉字符串的值呢?给出以下代码:#include #includevoid fuc(const char *p){原创 2015-03-17 12:47:35 · 7380 阅读 · 0 评论 -
【C语言】逆转二进制数的几种方法
比如输入10(1010)输出 5(101)代码有三种:最笨的方法循环:int fuc(int x){ int count=0; int num=0; int n=x; while(n!=0) { n/=2; count++; } while(x!=0) { if(x%2==1) num+=(int)pow(2,count-1); x/=原创 2014-12-28 18:59:01 · 2024 阅读 · 1 评论 -
【C语言】要求找出具有下列性质的数的个数(包含输入的自然数n): 先输入一个自然数n(n<=500),然后对此自然数按照如下方法进行处理:
①. 不作任何处理; ②. 在它的左边加上一个自然数,但该自然数不能超过原数首位数字的一半; ③. 加上数后,继续按此规则进行处理,直到不能再加自然数为止. 样例: 输入: 6 满足条件的数为 6 16 26 126 36 136 输出: 6 *原创 2014-12-18 13:18:13 · 13798 阅读 · 3 评论 -
【数据结构】哈夫曼树实现编码译码
根据一段字符串中字符的个数 作为该字符的权值生成哈夫曼树。 然后根据生成的哈夫曼编码,对任意字符串实现编码,对任意二进制串实现译码。程序运行结果:1.程序主界面:2.根据字符串 创建哈夫曼树及编码:3.生成的编码表如下:4.根据生成的哈夫曼编码对字符串编码:5.生成的编码保存在文件中:6.对二进制串译码原创 2015-01-07 22:16:13 · 21190 阅读 · 10 评论 -
【c语言】实现翻转字符串函数reverse_string
函数reverse_string(char * string)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。#include #include#define SWAP(a,b,c) ((c)=(a),(a)=(b),(b)=(c))void reverse_string(char * s){ char *p=s; char t原创 2015-01-07 22:14:12 · 8278 阅读 · 0 评论 -
【c语言】实现Strcat函数
实现char * my_strcat(char * dest,char *src)函数.返回: dest字符串的地址。功能:将src指向的字符串追加到dest指向字符串的后面。例如:char dest[10] = "andef";char *src = "ghi";my_strcat();之后,dest指向的字符串为"andefghi".代码:#in原创 2015-01-07 22:05:11 · 6768 阅读 · 0 评论 -
【C语言】递归实现元素的全排列和子集
问题描述:字符串:ABC,它的全排列有六个代码:#include#include#define SWAP(a,b,t) ((t)=(a),(a)=(b),(b)=(t))void permutation(char *ch, int min, int max) //min和max确定了需要排序的元素区间 min-max { int i; char te原创 2014-12-18 12:48:35 · 1774 阅读 · 1 评论 -
【C语言】输入一个整形数组,数组里有正数也有负数,数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
题目:输入一个整形数组,数组里有正数也有负数,数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。题目来源于:http://blog.csdn.net/v_JUL转载 2014-12-21 21:47:14 · 7351 阅读 · 1 评论 -
【C语言】逆转一个数字
把一个数字 123456 变为 654321赋给另一个数代码:#include#includevoid fuc(int *p, int x){ if (x != 0) { *p *= 10; *p = *p + x % 10; fuc(p,x / 10); }}void main(){ int num = 12345657; int res原创 2014-12-21 18:06:29 · 1796 阅读 · 3 评论 -
【C语言】【枚举所有可能】
题目:A,B,C,D,E,F,G,H,I,J,共10名学生有可能参加计算机竞赛,也可能不参加,因为某种原因他们受到下列条件的约束: 1. 如果A参加,B也参加; 2. 如果C不参加,D也不参加; 3. A和C中只能有一个人参加; 4. B和D中有且仅有一个人参加; 5. D、E、F、G、H 中至少有2人参加; 6. C和G或者都参加,或者都不参原创 2014-12-21 17:12:55 · 822 阅读 · 0 评论 -
【C语言】分解质因数
代码:#include//36=2*2*3*3void fun(int n){ int i=2; while(n!=1) { if(n%i==0) { n=n/i; printf("*%d",i); i=1; } i++; }}void main(){ int num=0; printf("input a num \n");原创 2014-12-21 17:41:26 · 1074 阅读 · 0 评论 -
【C语言】二分查找法
代码:#includeint find(int *a,int n,int x){ int *p=a; int max=n-1; int min=0; int mid; int num=0; while(min<=max) { mid=(max+min)/2; printf("mid=%d\n",mid); num++; if(p[mid]>x) max=原创 2014-12-21 17:55:33 · 688 阅读 · 0 评论 -
【C语言】二分查找法
两种写法:循环:int fuc(int *s,int x,int max){ int left=0; int right=max-1; int mid; while(left<=right) { mid=(right+left)/2; if(s[mid]>x) right=mid-1; else if(s[mid]<x) left=mid+1; e原创 2014-12-28 19:01:17 · 550 阅读 · 0 评论 -
【C语言】9的个数
输出100以内 9的个数。循环写法:int fuc2(){ int num=1; int x,count=0; while(num<100) { x=num; while(x!=0) { if(x%10==9) count++; x=x/10; } num++; }return count;}递归写法:int fuc(int原创 2014-12-28 18:55:20 · 1521 阅读 · 0 评论 -
QQ音乐听歌升级漏洞-用C实现接口
漏洞怎么发现的有一次,正在使用抓包工具Wireshark,换了收歌,看到Wireshark多了几条记录,看到域名i.y.qq.com,最后发现是QQ音乐的。出于好奇,我是想研究下我切歌的时候,QQ音乐到底是发了哪些数据包,没想到发现了QQ音乐发送听歌时间的一个漏洞分析协议因为用Wireshark可以看到,QQ音乐发送数据的时候采用的是HTTP协议,这里为了说明方便,用的是Fiddler2分析协议原创 2016-04-05 13:48:19 · 3306 阅读 · 3 评论