c语言
使用C语言实现一些简单的程序
yinhaijing_ss
这个作者很懒,什么都没留下…
展开
-
判断某个字符串是否为另一个字符串旋转之后得到的
判断某个字符串是否是另一个字符串旋转之后得到的思路一:将其中一个字符串进行左旋(或右旋),每旋转一次进行比较。取任意一个字符串(str1)进行左旋(或右旋)操作,每左旋(或右旋)一位后得到的字符串(str)与另一个字符串(str2)进行比较;若相等,str2是str1旋转之后得到的;否则,str继续进行旋转、比较,直至整个str旋转一次(即旋转size次),若仍不相等,则得出原创 2018-01-23 23:35:23 · 441 阅读 · 0 评论 -
短路求值
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章例题:欢迎使用Markdown编辑器你好! 这是你第一次使用 M...原创 2019-09-28 22:14:45 · 657 阅读 · 0 评论 -
解析指针数组,数组指针,函数指针,函数指针数组,指向函数指针数组的指针
有关指针、数组和函数的解析数组指针存放数组地址的指针.(可通过指针+i访问数组内部元素)eg: int a[4]; int (*pa) [4]=&a; // 数组指针变量pa存放数组a的地址。 (注:下标运算符“[ ]”优先级高于指针运算符“ * ”,这是区分数组指针和指针原创 2017-11-24 16:00:21 · 334 阅读 · 0 评论 -
递归函数与迭代的比较(以n的k次幂为例)
1.递归法求n的k次幂递归关键:确定递归公式(关系)确定终止条件。#includeint mfac(int n,int k){ if(k==0) return 1; else if(k>0) return n*mfac(n,k-1);}int main(){ int n,k; printf("请输入底数和幂:"); scanf("原创 2015-04-09 14:38:08 · 676 阅读 · 0 评论 -
异或的应用
异或的应用 题目1:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求:时间复杂度是O(n),空间复杂度是O(1)。算法思路 :根据异或运算的规律:相同为0,则只需要将整个数组相异或。由于相同的两个数字异或结果为0,而0与任何数字异或结果为该数字。故最后整个数组异或的结果就是出现了一次的数字。实现代码:#in原创 2018-01-30 18:00:36 · 200 阅读 · 0 评论 -
有关字符串逆置的应用
字符串逆置实例 例1:有一个字符数组的内容为:”student a am i”,请你将数组的内容改为”i am a student”. 要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。算法思路如下:逐个单词逆置。逆置结果为:”tneduts a ma i”整体逆置。逆置结果为”i am a student”代码实现如下:点击查原创 2018-02-05 22:38:24 · 258 阅读 · 0 评论 -
strcpy实现代码
Strcpy实现一、函数功能实现字符串的拷贝二、函数原型char *strcpy(char *dst,const char *src);注释:dst:目标字符串;src:源字符串,用const修饰,防止源字符串被修改。返回值为:char *,目的是:实现链式访问。三、函数实现char* strcpy(char *dst, const char ...原创 2018-02-26 21:49:27 · 578 阅读 · 0 评论 -
字符串操作函数(strcpy/strcmp/strcat/strstr/strchr/memcpy/memmove)
字符串操作函数的实现前言实现strcpy 实现strcat 实现strstr 实现strchr 实现strcmp 实现memcpy 实现memmovestrcpy的实现函数原型 char *MyStrcpy(char *dest, const char *src);实现代码//该函数不能处理内存重叠现象,故出现了函数...原创 2018-05-04 19:02:29 · 337 阅读 · 0 评论 -
猜字游戏
void GameMain(){ int input = 0; srand(time(NULL)); int rand_num = rand() % 100 + 1; while (1) { printf("请输入1-100之间您猜的数字:"); scanf("%d", &input); if (...原创 2019-09-28 22:16:58 · 135 阅读 · 0 评论 -
结构体的使用及注意点
结构体为什么会出现结构体?在实际生活和工作中,有些数据是有内在联系,且成组出现。如:一个学生的学号、姓名,性别,地址,和成绩等,都属于一个学生所具有的特点。但系统提供的已经定义好的数据类型,如:int、char、float 等定义的变量之间具有相互独立、无内部联系的特点。数组只能存储同一类型的数据。故,出现了由不同类型数据组成的组合型的自定义的数据结原创 2017-12-01 16:30:35 · 1290 阅读 · 0 评论 -
c语言的操作符之按位操作符
c语言的操作符之按位操作符:& 按位与对某些位清0或保留某些位 | 按位或^ 按位异或用来使某些特定位的翻转 eg:10010001的第2,3位翻转 就是将10010001^00000110=10010001^6实现两个数的交换(不创建临时变量)>>右移eg:a>>b表示把a原创 2017-11-05 21:13:00 · 277 阅读 · 1 评论 -
全面解析c语言的可变参数列表
我们要用一个函数实现求两个数的平均值,而求三个数的平均值的原理与求两个的平均值的原理相同。那么,如何实现让一个函数按我们所需要的参数个数进行传参?这就需要使用c语言中函数的可变参数列表来实现。使用可变参数,实现函数,求函数参数的平均值的代码如下:#include#include#includeint average(int n , ...){ va_list arg; int原创 2017-11-12 20:51:11 · 213 阅读 · 0 评论 -
将数组A中的内容和数组B中的内容进行交换(数组一样大)
实现思想:数组是由一系列相同数据类型的数据构成,它不像其他基本数据类型可以直接交换,两个数组的交换需将两个数组内的每一个元素逐一进行交换。#includevoid Swap(int *a, int *b, int length){ int tmp = 0; int i; for (i = 0; i <length; i++) { tmp = a[i]; a[i] = b[i原创 2017-10-11 21:56:26 · 481 阅读 · 0 评论 -
编写程序数一下 1到 100 的所有整数中出现多少次数字9
实现思想:要找出1到 100 的所有整数中出现多少次数字9,需分别考虑个位出现9以及十位出现9两种情况#includeint main(){ int i; int sum = 0; for (i = 1; i <= 100; i++) { if (((i-9) %10==0)||(i/9==10)) //或运算符之前的表达式表示个位出现9的数,而或运算符之后的表达式表示十位出现9原创 2017-10-11 22:29:48 · 529 阅读 · 1 评论 -
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
实现思想:因为此算式的特点为:1.该算式每一项分数的分子为1,分母为i(其中i为项数) 2.相邻的运算符号互为相反数,故可定义flag进行符号变换#includeint main(){ float a = 1.0; int i; int flag = 1; floa原创 2017-10-11 22:20:45 · 658 阅读 · 0 评论 -
杨式矩阵查找数
实现思想:此矩阵具有特殊性:从左到右,从上到下,数值依次增大。故其左上角的为整个矩阵里面最小的一个,而右下角的为整个矩阵里面最大的一个。 若要查找的数比第一个小,比最后一个大,则它必然不在矩阵中; 其右上角的数值具有为该行最大值,该列最小值的特点,故,不防从右上角开始,将所查找的数值与右上角进行比较。若要找数值大于其值,则势必要向下查原创 2017-11-10 09:40:12 · 265 阅读 · 1 评论 -
“实现模拟三次密码输入”的场景的c程序
注:(最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序) 实现此操作,必须设定一个计数器times,统计输入密码的次数 。 #include#includeint main(){ int times = 3; char passwd1[] = "123456"; char passwd2[10] = {原创 2017-10-16 20:11:51 · 302 阅读 · 0 评论 -
多种方法实现字符串的逆置
实现思想:字符串逆置有很多种方法:逐个翻转;(先将第一个字符保存,将自第二个起到最后为止的字符依次前移一位,再将保留下来的第一个字符放置最后一位,这样实现了一次。循环多次实现整体逆置。缺点:代码的时间复杂度太高)指针实现;(用两个指针,一个指向头部,一个指向尾部,进行交换只需交换至二者重合或交错即停下。其大大降低了代码的时间复杂度和空间复杂度)递归实现。如下为后两种方法实现的代原创 2017-11-11 21:41:20 · 2335 阅读 · 0 评论 -
将任意三个数按从大到小输出
#includevoid swap(int* a, int* b, int* c) //交换函数,实现将最大值传给a,最小值传给c{ int tmp; if (*a >*b) { if (*b >=*c) //即a>b>c return; else原创 2017-10-08 20:09:57 · 613 阅读 · 1 评论