![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 61
冷了只猪
好好学习天天向上
展开
-
有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 · 801 阅读 · 0 评论 -
自我实现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 · 307 阅读 · 0 评论 -
自我实现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 · 365 阅读 · 0 评论 -
从一个字符数组中读出相应的整数、实数
从一个字符数组中读出相应的整数、实数例如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 · 405 阅读 · 0 评论 -
将整数转换为相应的一个字符数组
将整数转换为相应的一个字符数组。分析:从个位提取数字,组合字符 符号位的处理 。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 · 1350 阅读 · 0 评论 -
字符串数组的冒泡排序,从小到大
字符串数组的冒泡排序,从小到大例如 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 · 2007 阅读 · 0 评论 -
查找介于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 · 1224 阅读 · 1 评论 -
编写函数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 · 970 阅读 · 0 评论 -
对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 · 893 阅读 · 0 评论 -
找出符合以下条件的Troitsky数,将该数的首位数字移动到末位数字之后得到的数是原数的整数倍
找出符合以下条件的Troitsky数,将该数的首位数字移动到末位数字之后得到的数是原数的整数倍 例如:将142857的首位数字1移动到末位之后得到的数是428571,而428571=3*142857,因此142857 是Troitsky数 编程要求: (1) 编写函数int Troitsky(long a[]),其功能是求出10000以内的所有Troitsky数,原创 2017-08-06 18:56:37 · 692 阅读 · 0 评论 -
合并两个字符集合为一个新集合,每个字符串在新集合中仅出现一次,函数返回新集合中字符串
合并两个字符集合为一个新集合,每个字符串在新集合中仅出现一次,函数返回新集合中字符串。 如: s1集合{“while”,”for”,”switch”,”if”,”continue”} s2集合{“for”,”case”,”do”,”else”,”char”,”switch”} 运行结果: while for swit原创 2017-08-06 18:56:53 · 687 阅读 · 0 评论 -
找出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 · 632 阅读 · 0 评论 -
对一个二维数组中的数据排序
对一个二维数组中的数据排序,方法如下: 将整个数组中值最小的元素所在行调整为数组第一行, 将除第一行外的行中最小元素所在行调整为第2行, 将除第1,2行外的行中最小值元素所在行调整为第3行,以此类推#include #define N 4int FindMinLine(int Arr[][N], int CurrenLine)原创 2017-08-06 18:57:47 · 1000 阅读 · 0 评论 -
编写函数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 · 2463 阅读 · 0 评论 -
编写函数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 · 646 阅读 · 0 评论 -
编写函数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 · 3412 阅读 · 0 评论 -
程序功能:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。
#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 · 756 阅读 · 0 评论 -
给一个字符串,有大小写字母,要求写一个函数把小写字母放在前面 大写字母放在后面,尽量使用最小空间,时间复杂度。(即用指针做)。 如:aAbBcCdD ---àabcdABCD
给一个字符串,有大小写字母,要求写一个函数把小写字母放在前面大写字母放在后面,尽量使用最小空间,时间复杂度。(即用指针做)。如:aAbBcCdD ---àabcdABCD#include #include int SmallToCaptial( char *str, char *outbuf ){char *p = str;if (str ==原创 2017-08-05 18:40:27 · 2782 阅读 · 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 · 1425 阅读 · 0 评论 -
冒泡排序及其改进算法
将数组 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 · 304 阅读 · 0 评论 -
选择排序
将数组 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 · 166 阅读 · 0 评论 -
插入排序
将数组 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 · 150 阅读 · 0 评论 -
插入排序改进之二分插入排序
二分插入排序在二分排序基础上进行改进,将抓到的牌与之前抓到的已排好序的牌的中间一张进行比较,缩小比较范围,减少比较次数将数组 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 · 327 阅读 · 0 评论 -
插入排序高效改进之希尔排序
希尔排序,也叫递减增量排序,是插入排序的一种更高效的改进版本,是不稳定的排序算法。转载 2017-08-10 16:32:18 · 203 阅读 · 0 评论 -
堆排序
堆排序利用二叉树模型,把要排序的元素建成一个类似完全二叉树的样子,将每三个元素中最大的元素调整至这三个结点中根结点的位置,调整后最大元素位于整个树的根结点位置。将根结点的元素与最后一个元素交换,则最大数沉底,将树的长度减一,调整结点位置,重复操作,最后得到排好序的数组。堆排序是不稳定排序。以下为代码演示void Swap(int *a, int i, int j){ int tmp转载 2017-08-11 09:43:09 · 286 阅读 · 0 评论 -
归并排序
归并排序是将数组元素分成左右两个部分,对两边分别进行归并排序:把分开后的两部分再各自分成两部分,进行归并排序.....分到不能再分为止以下为代码演示#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 · 208 阅读 · 0 评论 -
快速排序
快速排序对数组元素进行分区操作,在数组元素中选择一个作为基准值,将其他元素一一和其比较,比基准值小的放在基准值左边,比基准值大的放在基准值右边,再对基准值两边进行分区操作,分别选一个新的基准值进行比较,直到不能再分区。快速排序是不稳定的排序以下为代码演示#include void Swap(int *a,int i,int j){ int tmp = a[i]; a[i] =转载 2017-08-11 11:04:28 · 233 阅读 · 0 评论 -
输入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 · 503 阅读 · 0 评论 -
求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 · 270 阅读 · 0 评论 -
请编写一个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 · 661 阅读 · 0 评论 -
请编写一个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 · 391 阅读 · 0 评论 -
输入一个字符串,计算字符串中子串出现的次数
#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 · 1204 阅读 · 0 评论 -
编写一个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 · 1050 阅读 · 0 评论 -
输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.
输入一个字符串,同时输入帧头和帧尾(可以是多个字符),将该字符串中合法的帧识别出来.提示:帧头和帧尾分别是head和tail 字符串”asdheadhauboisoktail”中headhauboisoktail是合法帧#include int mystrlen(const char *str){int length = 0;whi原创 2017-08-04 15:18:10 · 611 阅读 · 0 评论 -
求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 · 372 阅读 · 0 评论 -
编写程序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 · 1233 阅读 · 0 评论