![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
不一样的博客
这个作者很懒,什么都没留下…
展开
-
C语言简单实现通讯录
一、整体思路 1.需要一个结构体,用来表示人的基本信息,再需要一个结构体用来存放人的基本信息,声明一个结构体的全局变量访问结构体成员。 2.定义一个枚举enum,表示通讯录各种执行的操作,用户选择时调用对应的函数。 3.主要的函数:结构体的初始化函数,通讯录的增、删、改、查、显示、退出、清除函数,通讯录用文件的保存、加载函数。 4.main函数:按步...原创 2018-11-26 08:27:17 · 5490 阅读 · 1 评论 -
C语言递归和非递归实现n的阶乘
//递归实现n的阶乘 什么是阶乘:0!= 1,n!=n * (n - 1) * (n - 2)......3 * 2 * 1; 解题思路: 1> 分析题意,很明显0是递归出口; 2> 很好看出,递归调用自己,直到n等于0,返回之前的函数,直到最后一个; 3> 一个简单n的阶乘就...原创 2018-10-25 01:23:01 · 4130 阅读 · 0 评论 -
C语言递归和非递归实现求字符串长度(strlen)
//递归实现strlen(求字符串的长度) 解题思路:1> 分析题意,寻找出口,关于字符串出口一般都为'\0'; 2> 当指针指向'\0',表示已经从字符串第一个字符指向最后一个,再依次返回, 返回一次加1,就可以计算出字符串的长度 ...原创 2018-10-25 01:09:32 · 1736 阅读 · 0 评论 -
C语言实现将参数字符串反向排列
// 编写一个函数 reverse_string(char * string)(递归实现) 具体要求:实现:将参数字符串中的字符反向排列。不能使用C函数库中的字符串操作函数。 解题思路:1> 分析题意,寻找出口,对于字符串而言,末尾\0就是出口判断条件之一; 2> 通过指针所指向字符串中字符的位置判断书否指向\0; ...原创 2018-10-25 00:47:24 · 1049 阅读 · 0 评论 -
C语言编写一个递归函数实现这非负数的的各个位上的数之和
//写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和 例如,调用DigitSum(1729),则应该返回1 + 7 + 2 + 9,它的和是19int DigitSum(int n) 解题思路:1> 分析题意,找递归的出口,要实现每个数之和必须先调出每个位上的数; 2> 我选择n<1...原创 2018-10-25 00:35:28 · 842 阅读 · 0 评论 -
C语言递归实现n^k
//编写一个函数n^k,使用递归 解题思路: 1> 分析题意,0任何次方都为0,任何数的1次方都为本身,其余采用递归; 2> 根据分析,递归的出口已经出来了(k==1),当k=1时,返回n,一直 乘到k为初始定义的值,从而实现了n^k; ...原创 2018-10-25 00:21:21 · 484 阅读 · 0 评论 -
C语言递归和非递归实现斐波那契数
什么是递归?怎么使用递归? 反复调用自身这就是递归。多做题,多总结,自然而然就会使用。 这对很多像我这样的初学者来说,都觉得它很难很难。其实,在我看来,你多做一些递归这样的题,去发现里面的规律,就可以很快的理解递归,并能基本掌握在什么时候使用递归。//递归实现斐波那契数 斐波那契数是1,1,2,3,5... 规律:前两两项之和等于后一项即...原创 2018-10-24 23:43:13 · 2110 阅读 · 0 评论 -
C语言实现杨氏矩阵
//杨氏矩阵 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N); 数组: 1 2 3 2 3 4 3 4 5 解题思路: 1> 首定根据矩阵定义一个数组,并初始化为上述所示;...原创 2018-10-30 01:44:15 · 325 阅读 · 0 评论 -
C语言实现调整数组使奇数全部都位于偶数前面
//调整数组使奇数全部都位于偶数前面 要求:题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的 奇数位于数组的前半部分,所有偶数位于数组的后半部分。 解题思路: 1> 定义一个数组里面数字的顺序是乱序; 2> 写一个交换函数,交换奇数和偶...原创 2018-10-30 01:01:13 · 1124 阅读 · 0 评论 -
C语言在屏幕上打印杨辉三角
//在屏幕上打印杨辉三角。 图形如下: 整体分析: 根据图像发现规律:左边和右边都为1,中间项是上面两个值之和。...原创 2018-10-26 16:09:18 · 4202 阅读 · 2 评论 -
已知3个人说了真话,1个人说的是假话,通过编程确定说假话的人
// 已知3个人说了真话,1个人说的是假话,通过编程确定说假话的人 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个 嫌疑犯的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在请根据这些信息,写一个程序来确定到底谁是凶手。 将汉字信息转变成C语言形式 ...原创 2018-10-26 15:52:55 · 6728 阅读 · 5 评论 -
C语言递归方式实现打印一个整数的每一位
//递归方式实现打印一个整数的每一位 题意:输入一个整数1234,打印每一位及1,2,3,4分别打印; 解题思路:1> 分析出口,当只有一位的时候,就是出口; 2> 如果整数大于9,依次调用函数自己并将n的值除以10,直到n小于9,打印 第一个整数,再返回到刚才调...原创 2018-10-25 01:35:14 · 4831 阅读 · 2 评论 -
C语言模拟实现strstr
//模拟实现strstr 概述: //strstr表示查找一个字符串是否是另一个字符串的子集 解题思路: 1> 在主函数数中进行判断,若返回值为1,说明有相同的字符串,并打印,若返回值为0,没有找到相同的字符串,输出没有找到!; 2> 若找到源字符串中一个字符与目的字符串...原创 2018-11-07 00:53:03 · 368 阅读 · 0 评论 -
模拟实现strncpy、strncat、strncmp
一、模拟实现strncpy 概述:简单来说strncpy就是字符串拷贝,拷贝多少取决于strncpy中n的个数,具体实现如下: 理解: 需要拷贝几个,只需要一个循环就可以了,但是需要注意的是如果dest初始化为0,拷贝完之后不需要再目标字符串末尾加'\0',否则拷贝完成之后,要给目标字符串末尾加'\0',不然就是未定义行为。#define _CRT_SECURE_NO_W...原创 2018-11-19 13:01:55 · 194 阅读 · 0 评论 -
C语言模拟实现strcat
//模拟实现strcat 概念: //将两个char类型的字符串连接,中间无空格 解题思路: 1> 定义两个字符串数组,再定一个数组用于存放这两个数组的值; 2> 为了使两个字符串相连,拷贝第二个数组里面的值是,需要获取第一个数组的'\0'存储的地方,将'\0'和'\0...原创 2018-11-04 22:50:23 · 1609 阅读 · 0 评论 -
c语言模拟实现strcpy
//模拟实现strcpy 概念: //strcpy(str1,st2)将数组str2的值复制到数组str1 解题思路:整体比较简单 1> 将数组里的值一个个拷贝到另个数组; 2> 打印数组里的每一个值。源代码:#include<stdio.h&g...原创 2018-11-04 22:40:37 · 739 阅读 · 0 评论 -
C语言实现喝汽水,根据规则求出最多喝多少瓶
// 喝汽水,根据规则求出最多喝多少瓶 规则: //喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水, //给20元,可以多少汽水。 //编程实现。 解题思路: 1> 先算出用金钱可以买多少瓶汽水; 2...原创 2018-11-04 22:15:49 · 1441 阅读 · 0 评论 -
C语言实现一个数组中只有两个数是出现了一次
// 一个数组中只有两个数是出现了一次 概述://其他所有数字都出现了两次。 //找出这两个数字,编程实现。 解题思路: 1> 两个for循环,遍历数组中的值; 2> 采用计数的方法,如果第一个循环中的值和第二循环中的值相等 ...原创 2018-11-04 22:04:06 · 283 阅读 · 0 评论 -
C语言实现判断一个字符窜是否为另外一个字符串旋转之后的字符串
//判断一个字符窜是否为另外一个字符串旋转之后的字符串 例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1 = abcd和s2 = ACBD,返回0. // AABCD左旋一个字符得到ABCDA // AABCD左旋两个字符得到BCDAA // AABCD右旋一个字符得到DAABC...原创 2018-11-02 12:37:12 · 268 阅读 · 0 评论 -
C语言实现一个函数,可以左旋字符串中的k个字符
// 实现一个函数,可以左旋字符串中的k个字符 例如: //ABCD左旋一个字符得到BCDA //ABCD左旋两个字符得到CDAB 解题思路: 1> 先理思路,交换字符串中的字符需要(循环和交换函数); 2> 根据你交换字符的个数依次...原创 2018-11-02 12:20:56 · 232 阅读 · 0 评论 -
C语言模拟实现memcpy和memmove
//模拟实现memcpy和memmove 概述:memcpy:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中 memmove:用于从src拷贝count个字节到dest;如果目标区域和源区域有重叠的话,mommove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,但复制后src内容会被更改。 解题思路:m...原创 2018-11-07 02:10:14 · 318 阅读 · 0 评论 -
C语言模拟实现strcmp
//模拟实现strcmp 概述: 对两个字符串自左至右逐个字符相比较,直到出现不同的字符或遇到'\0' 注意:比较字符的大小(按ASCII码值大小比较) 解题思路: 1> 判断出较长的一个字符串,作为for循环的条件,然后才能比较; 2> 直接比较一个字符...原创 2018-11-07 01:54:05 · 2735 阅读 · 0 评论 -
C语言模拟实现strchr
//模拟实现strchr 概述: 查找一个字符c在另一个字符串str中末次出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符。如果未找到指定的字符,返回NULL。 解题思路: 1> 通过外部函数找到对应的字符,若找到返回该字符,否则返回0; 2> 通过获取该字符...原创 2018-11-07 01:37:26 · 382 阅读 · 0 评论 -
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果,请编程确定名次
//5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果,请编程确定名次 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比赛结束后,每位选手都说对了一...原创 2018-10-26 15:31:16 · 451 阅读 · 1 评论 -
C语言编写一个代码,可以一直接受键盘输入
//编写一个代码,可以直接接受键盘输入 例题:如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。 解题思路:1> 玩家输入一个字符,获取字符用(getchar); 2> 对输入的字符进行判断;(在ASCLL表中小写字母比大写字母多32) ...原创 2018-10-23 19:58:16 · 10083 阅读 · 0 评论 -
求Sn=a+aa+aaa+aaaa+aaaaa数列的前五项之和
//求Sn=a+aa+aaa+aaaa+aaaaa数列的五项之和 理解题意:Sn=n^1 + n^2 + n^3 + n^4 + n^5+……+n^i之和,根据题意只需求前五项。 解决思路:1> 定义两个变量分别代表n和i; 2> 通过循环将每次的计算结果赋给Sn,输出Sn。 源代码:#include...原创 2018-10-20 21:31:24 · 487 阅读 · 0 评论 -
求0~999之间的水仙花数
//求出0~999之间的水仙花数并 先了解一下什么是水仙花数? 水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身如:153=1^3+5^3+3^3,则153是一个仙花数”。 解题思路:1> 将三位数分解成:百位、十位、个位; 2> 分别定义三个变量来代表百位、十位、个位; ...原创 2018-10-20 21:16:09 · 876 阅读 · 1 评论 -
打印菱形
//在屏幕上输出一个用*打印出菱形的 图像 解决方案:1> 分析一下图案: 图像关于中间一行,那么定义中间最长的一行为n行;根据中间一行可以分为:上、中、下三部分; 上半部分:第1行,有n - 1个空格,有1个星号;...原创 2018-10-20 18:59:43 · 600 阅读 · 0 评论 -
求1-100中9的个数
//编写程序数一下1到100中所有出现的9的个数 解决思路:1> 首先需要一个循环,判断1到100中每个数中9的个数,每判断出 一个9,通过count计数; 2> 如何判断?分析:对i求模运算,这样可以计算个位上的9的个数。 ...原创 2018-10-19 20:56:35 · 453 阅读 · 0 评论 -
计算1/1-1/2+1/3......+1/99-1/100的值
//计算1/1-1/2+1/3-1/4+1/5......+1/99-1/100的值 解决方法:1> 首先考虑需要几个什么类型的变量(float型、int型),它们分别代表什么 (例如:den表示分母,sum表示总和,sign表示用来改变加减符号); 2> 其次在循环中列出里的算法,实现求...原创 2018-10-19 18:29:45 · 891 阅读 · 0 评论 -
交换两个数组的内容
//将数组A和数组B中的内容交换(两个数组一样大) //实现数组的交换:首先,创建数组,在mian函数中将数组的值传递给外部Fun函数; 其次,外部Fun函数通过一个循环对数组里面的值进行交换, 最后,在main函数中调用Fun函数,打印数组A,B...原创 2018-10-19 17:09:07 · 744 阅读 · 0 评论 -
打印九九乘法表,求100~200之间的素数,求1000~2000之间的闰年并计算闰年个数
//求100~200之间的素数 基本思路:一个数除以从零到它前一个数,判断是否有为零的结果,若有排除该数,若没有跳出循环再进行判断该数是否满足100~200之间,满足printf。#include<stdio.h> #include<stdlib.h>int main(){ int i = 0; int j ...原创 2018-10-13 21:37:52 · 648 阅读 · 0 评论 -
交换两个整形变量的值三种方法
//借助临时变量基本思路:将一个变量的值赋给临时变量,再将另一个变量的值赋给临时变量,最后将临时变量的值赋给一个变量。代码:#include<stdio.h>#include<stdlib.h>//交换两个整形变量的值int main(){ int i = 2; int j = 4; int num = 0; num = i; i ...原创 2018-10-14 21:51:13 · 1065 阅读 · 0 评论 -
求10个整数中的最大值
//求10个整数的最大值 基本思路:相当于打擂台,定义一个数组,将数组的第一个值值赋给max,然后依次让max与其余数比较。若max大,再进行比较,若不是max大,将该值赋给max,最后输出max.//代码:#include<stdio.h>#include<stdlib.h>//求10个整数中的最大值int main(){ int arr[1...原创 2018-10-17 02:54:47 · 1133 阅读 · 3 评论 -
将三个数按从大到小输出
//将三个数从大到小输出 基本思路:定义三变量,再定一个临时变量,采用if判断语句,按顺序判断(x,y)(y,z)(x,y)的大小,按顺序输出结果即可。代码:#define _CRT_SECURE_NO_WARNING#include<stdio.h>#include<stdlib.h>//将三个数按大到小输出 int main(){ int...原创 2018-10-17 02:59:34 · 601 阅读 · 0 评论 -
C语言实现函数的返回值value的二进制位模式从左到右翻转后的值
// 函数的返回值value的二进制位模式从左到右翻转后的值例如:在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 10011000000000000000000000000000 程序结果返回: ...原创 2018-10-28 15:06:36 · 662 阅读 · 0 评论 -
c语言实现不使用(a + b) / 2这种方式,求两个数的平均值
//不使用(a + b) / 2这种方式,求两个数的平均值 解题思路: 1> 先判断是奇数还是偶数; 2> 将a,b之和右移一位; 3> 按double型输出。 源代码:#include<stdio.h>#include<...原创 2018-10-28 15:15:32 · 346 阅读 · 0 评论 -
C语言输入三次密码的场景
//编写代码模拟三次密码输入的场景 具体内容:最多能输入三次密码,密码正确,提示“登录成功”, 密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。 解题思路:1> 每次输入密码都要提示玩家“请输入密码”,所以需要一个循环; 2> 定义一个数组存放密码; ...原创 2018-10-23 19:31:38 · 492 阅读 · 0 评论 -
返回有序数组中你想要查找数字的下表,找不到返回-1(折半查找)
//写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回 - 1.(折半查找) 解决思路: 全局分析://定义数组和判断数组中的元素个数 //判断是否查到到你想要的数字 //确定返回值 //代码实现如下:#...原创 2018-10-23 19:13:07 · 519 阅读 · 0 评论 -
C语言完成一个猜字游戏
//完成猜字游戏 解决思路: 1> 分析整个程序的过程在具体代码里面是怎么实现的 2> 代码实现: 1. 首先,需要电脑产生一个随机数,rand()函数 2. 其次,这是一个不断猜数字的过程,需要一个循环语句 ...原创 2018-10-23 18:54:13 · 4936 阅读 · 0 评论