自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

转载 快速排序

快速排序对数组元素进行分区操作,在数组元素中选择一个作为基准值,将其他元素一一和其比较,比基准值小的放在基准值左边,比基准值大的放在基准值右边,再对基准值两边进行分区操作,分别选一个新的基准值进行比较,直到不能再分区。快速排序是不稳定的排序以下为代码演示#include void Swap(int *a,int i,int j){ int tmp = a[i]; a[i] =

2017-08-11 11:04:28 202

转载 归并排序

归并排序是将数组元素分成左右两个部分,对两边分别进行归并排序:把分开后的两部分再各自分成两部分,进行归并排序.....分到不能再分为止以下为代码演示#include void printA(int *a,int len){ int i; for(i = 0; i < len; i++) { printf("%4d",a[i]); } printf("\n");}/

2017-08-11 10:02:32 202

转载 堆排序

堆排序利用二叉树模型,把要排序的元素建成一个类似完全二叉树的样子,将每三个元素中最大的元素调整至这三个结点中根结点的位置,调整后最大元素位于整个树的根结点位置。将根结点的元素与最后一个元素交换,则最大数沉底,将树的长度减一,调整结点位置,重复操作,最后得到排好序的数组。堆排序是不稳定排序。以下为代码演示void Swap(int *a, int i, int j){ int tmp

2017-08-11 09:43:09 260

转载 插入排序高效改进之希尔排序

希尔排序,也叫递减增量排序,是插入排序的一种更高效的改进版本,是不稳定的排序算法。

2017-08-10 16:32:18 188

原创 插入排序改进之二分插入排序

二分插入排序在二分排序基础上进行改进,将抓到的牌与之前抓到的已排好序的牌的中间一张进行比较,缩小比较范围,减少比较次数将数组 a[10] = {7,2,9,4,1,3,8,6,5,0} 从小到大排序并打印结果打印函数void printA(int *a,int len){ int i; for(i = 0; i < len; i++) { printf("%4d",a[i]

2017-08-10 14:45:25 295

原创 插入排序

将数组 a[10] = {7,2,9,4,1,3,8,6,5,0} 从小到大排序并打印结果插入排序类似抓牌,每抓一张牌与前面抓的对比,从右往左,找到第一个比抓到的牌小的的位置,将后面的元素位置依次后移一位,将新元素插入#include void printA(int *a,int len){ int i; for(i = 0; i < len; i++) { print

2017-08-10 11:25:56 146

原创 选择排序

将数组 a[10] = {7,2,9,4,1,3,8,6,5,0}从小到大排序并打印结果打印函数void printA(int *a,int len){ int i; for(i = 0; i < len; i++) { printf("%4d",a[i]); } printf("\n");}交换函数void Swap(int *a,int i,int j){

2017-08-10 10:38:25 161

原创 冒泡排序及其改进算法

将数组 a[10]  =  {7,2,9,4,1,3,8,6,5,0}从小到大排序并打印结果打印函数:void printA(int *a,int len){ int i; for(i = 0; i < len; i++) { printf("%4d",a[i]); } printf("\n");}交换两个元素的位置:将数组首地址及要交换的元素下标作为参数传入vo

2017-08-10 09:55:48 278

转载 文件操作函数的使用和区别

一、fopen  与 fclose 函数的使用fopen 函数用于打开一个文件函数定义:FILE *fopen(const char *filename, const char *mode);fopen 的返回值是一个文件指针,FILE 是在stdio.h中定义的结构体类型,封装了与文件相关的信息:struct   _iobuf   {          cha

2017-08-06 19:13:12 358

转载 srand函数与rand函数的使用方法及区别

rand函数函数头文件:stdlib.h函数定义:int rand(void)函数功能:产生一个随机数函数说明:rand函数产生的随机数严格意义讲不是真正的随机数,它里面采用了线性同余法计算出随机数,所谓的线性同语法简单来说就是使用了一个公式,该方法有个最大周期M,也就是说该方法实在一定的范围内生成一串数字,不过这个M一般来说比较大,所以正常使用时一般看起来就是产生

2017-08-06 19:07:46 4811

原创 程序功能:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。

#include #include struct node{int num;struct node *next; };typedef struct node Node;typedef struct node *Link;void CreatLink(Link *head){*head = NULL;}void IsMallocOk

2017-08-06 18:59:00 715

原创 编写函数fun(int *a, int n, int *odd, int *even)

编写函数fun(int *a, int n, int *odd, int *even),功能是:  求出数组a[]中所有奇数之和以及所有偶数之和。  并利用指针odd返回奇数之和,利用指针even返回偶数之和。   例如:a[]的值依次为:1,9,2,3,11,6;  则利用指针odd返回奇数之和24;利用指针even 返回偶数之和 8。#include

2017-08-06 18:58:33 3346

原创 编写函数int stat(int a[],int n,int c[][2])

编写函数int stat(int a[],int n,int c[][2])。  a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。  函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的整数,  从而生成有n/2个元素组成的整数数列;统计该数列中不同整数各自出现的次数,  并将统计结果保存到c指向的二维数组中。函数返回不同整数的个数。#includ

2017-08-06 18:58:21 622

原创 编写函数void count(char a[],char w[][10],int n,int b[])。

编写函数void count(char a[],char w[][10],int n,int b[])。  功能是:统计w指向的数组中的n个单词在a指向的字符串中各自出现的次数  将非字母字符看作单词分割符,拧将统计结果依次保存在b指向的数组中#include #define N 4int mystrlen(const char *str){

2017-08-06 18:58:02 2439

原创 对一个二维数组中的数据排序

对一个二维数组中的数据排序,方法如下:   将整个数组中值最小的元素所在行调整为数组第一行,   将除第一行外的行中最小元素所在行调整为第2行,   将除第1,2行外的行中最小值元素所在行调整为第3行,以此类推#include #define N 4int FindMinLine(int Arr[][N], int CurrenLine)

2017-08-06 18:57:47 983

原创 找出7个默森尼数。法国数学家默森尼曾提出下列公式:Mp=2^p-1。

找出7个默森尼数。法国数学家默森尼曾提出下列公式:Mp=2^p-1。   当p是素数并且Mp也是素数时,称Mp为默森尼数,   例如,p=5,Mp=2^5-1=31,5和31都是素数,因此31是默森尼数;   而Mp=2^11-1=2047,11是素数,2047不是素数,因此2047不是默森尼数#include #include int Judg

2017-08-06 18:57:33 603

原创 合并两个字符集合为一个新集合,每个字符串在新集合中仅出现一次,函数返回新集合中字符串

合并两个字符集合为一个新集合,每个字符串在新集合中仅出现一次,函数返回新集合中字符串。    如: s1集合{“while”,”for”,”switch”,”if”,”continue”}            s2集合{“for”,”case”,”do”,”else”,”char”,”switch”}    运行结果:         while   for   swit

2017-08-06 18:56:53 656

原创 找出符合以下条件的Troitsky数,将该数的首位数字移动到末位数字之后得到的数是原数的整数倍

找出符合以下条件的Troitsky数,将该数的首位数字移动到末位数字之后得到的数是原数的整数倍   例如:将142857的首位数字1移动到末位之后得到的数是428571,而428571=3*142857,因此142857   是Troitsky数  编程要求:  (1) 编写函数int Troitsky(long a[]),其功能是求出10000以内的所有Troitsky数,

2017-08-06 18:56:37 678

原创 对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序

对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序   例如 3行3列 的二维数组   34,85,72,93,49,28,48,12,43   输出 34, 72, 85   93, 49, 28   12, 43, 48#include #define N 4void Swap (int *a, int *b

2017-08-06 18:56:04 862

原创 编写函数void change(char *a,char *b,char*c)。 函数功能是首先把b指向的字符串逆向存放 然后将a指向的字符串和b指向的字符串按排列顺序交叉合并到c指向的数

编写函数void change(char *a,char *b,char*c)。   函数功能是首先把b指向的字符串逆向存放  然后将a指向的字符串和b指向的字符串按排列顺序交叉合并到c指向的数组中  两个字符串中过长的剩余字符接在c指向数组的尾部。#include #include int mystrlen (char *str)  /

2017-08-05 18:45:16 955

原创 查找介于n1与n2(0<n1<n2<32768)之间所有满足下列条件的整数: (1)该数的十进制表示中有且仅有两个相同的数字位; (2)该数是素数。

查找介于n1与n2(0   (1)该数的十进制表示中有且仅有两个相同的数字位;   (2)该数是素数。#include void Search(int n1, int n2){int i = 0, j = 0, k = 0;int m = 0, n = 0;int temp = 0;int t = 0;int flag = 0;

2017-08-05 18:44:48 1149 1

原创 字符串数组的冒泡排序,从小到大

字符串数组的冒泡排序,从小到大例如 hello good suqian nice world 输出 good hello nice suqian world#include #include #define LEN 5int mystrlen(char *str)  //计算字符串长度{if (str == NULL){ret

2017-08-05 18:44:03 1994

原创 将整数转换为相应的一个字符数组

将整数转换为相应的一个字符数组。分析:从个位提取数字,组合字符 符号位的处理  。12345=>"12345"#include int IntToStr(int num, char *str){if (str == NULL){return -1;}int len = 0;int count = 0;int temp

2017-08-05 18:43:34 1320

原创 从一个字符数组中读出相应的整数、实数

从一个字符数组中读出相应的整数、实数例如qwe32.56dgh456ml9.4sad  应该输出32.56 456 19.4#include int ReadFloatInt(char *str, char (*outbuf)[10]){if (str == NULL || outbuf == NULL){return -1;}

2017-08-05 18:43:10 373

原创 自我实现itoa(整形转字符串)

自我实现itoa(整形转字符串)如: 123 转换成 “123”“-123” 转换成 -123#include int IntegerToString(int num, char *str){if (str == NULL){return -1;}int temp = num; //先定义临时变量记录numint len

2017-08-05 18:42:44 334

原创 自我实现atoi(字符串转整形)

自我实现atoi(字符串转整形)如:“123”转换成 123      “-123” 转换成 -123#include #include int StringToInteger(char *str){int flag = 1;int num = 0;   //最后的整型数char *p = str; if (str ==

2017-08-05 18:41:01 280

原创 给一个字符串,有大小写字母,要求写一个函数把小写字母放在前面 大写字母放在后面,尽量使用最小空间,时间复杂度。(即用指针做)。 如:aAbBcCdD ---àabcdABCD

给一个字符串,有大小写字母,要求写一个函数把小写字母放在前面大写字母放在后面,尽量使用最小空间,时间复杂度。(即用指针做)。如:aAbBcCdD ---àabcdABCD#include #include int SmallToCaptial( char *str, char *outbuf ){char *p = str;if (str ==

2017-08-05 18:40:27 2725 1

原创 统计一个字符串中各个字符的百分比:

统计一个字符串中各个字符的百分比:如输入字符串asdfs  a  ----- 20%s  ----- 40%d  -----20%f  -----20%#include #include #include #define N 1024//asdfs  void count_num_char(char *src,

2017-08-05 18:40:06 1390

原创 求100以内的素数,全部打印出来

#includevoid Prime(void){int i = 0;int j = 0;int flag = 0;pritf ("Prime numbers are : \n");for (i = 2; i {for (j = 2; j {if (i % j == 0){flag = 1;break;}}if (fl

2017-08-05 18:38:54 338

原创 编写程序STUDENT *Create(STUDENT studs[],int n)。 STUDENT是一个结构类型,包含姓名、成绩和指针域。

编写程序STUDENT *Create(STUDENT studs[],int n)。  STUDENT是一个结构类型,包含姓名、成绩和指针域。  studs数组中存储了n个STUDENT记录。  create函数的功能是根据studs数组建立一个链表,  链表中结点按成绩降序排列,函数返回链表头指针。#include #include struct s

2017-08-04 19:43:25 1199

原创 输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.

输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.提示:帧头和帧尾分别是head和tail  字符串”asdheadhauboisoktail”中headhauboisoktail是合法帧#include int mystrlen(const char *str){int length = 0;whi

2017-08-04 15:18:10 575

原创 编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”; 及将句子中的单词位置倒置,而不改变单词内部结构.

#include int mystrlen(const char *str){int length = 0;while (*str++){length++;}return length;}void RevStr(char *str, int len)  //字符串倒置函数{int i = 0;char temp = 0;f

2017-08-04 15:16:13 1019

原创 输入一个字符串,计算字符串中子串出现的次数

#include int mystrlen(const char *str){int length = 0;while (*str++){length++;}return length;}char* mystrstr(const char *str, const char *sub)   //寻找字串,找到则返回该地址{

2017-08-04 15:13:34 1191

原创 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出

#include void Transfer(int num, int radix, int *Arr){int i = 0;int temp = 0;if (radix == 2) //二进制{while (num){Arr[i++] = num % 2;num /= 2;}printf ("num = ");while (i)

2017-08-04 15:10:53 379

原创 请编写一个C函数,该函数将一个字符串逆序

#include int mystrlen(const char *str)  //计算字符串的长度{int length = 0;if (str == NULL){return -1;}while (*str++){length++;}return length;}void RevStr(char *str){int

2017-08-04 15:08:15 632

原创 题目: 一个数如果恰好等于它的因子之和,这个数被成为”完数” 例如:6=1+2+3.请编程找出1000以内的完数

#includevoid PerfectNum(void){int i = 0;int j = 0;int sum = 0;for(i = 2;i {        sum = 0;        for(j = 1;j {if(i % j == 0){sum += j;}}if(sum == i){printf("%

2017-08-04 15:04:18 2223

原创 求100以内的素数,全部打印出来

#includevoid Prime(void){int i = 0;int j = 0;int flag = 0;printf ("Prime numbers are : \n");for (i = 2; i {for (j = 2; j {if (i % j == 0){flag = 1;break;}}if (fla

2017-08-04 14:59:36 260

原创 输入5个数(含负数、小数)将它们按由小到大的顺序排列起来 提示:需要排数的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7输出: -3 -1 2.1 5 7

#include#define False 0#define True 1double StrToFloat(const char *str){if (str == NULL){return -1;}double s = 0.0;double d = 10.0;int flag = False;while (*str == ' ') 

2017-08-04 14:55:12 471

原创 有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.

#includevoid LastNum(int *Arr, int n){int qw = 0; //圈外的人数int count = 0; //报数计数器int i = 0;for (i = 0; i {Arr[i] = i + 1; //给这n个人编号}printf ("out number is : ");i = 0;whil

2017-08-04 14:51:51 791

原创 统计1-n有多少个9

n通过参数传入,对n除以10取余后与9比较#include int main(){int n;printf("Please Input n:\n");scanf("%d",&n);int i,j,sum;for(i=0;i{j=i;if(j!=0){if(j%10==9){sum++;}j=j/10;}}pri

2017-08-04 14:44:31 521

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除