![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
helloword233
这个作者很懒,什么都没留下…
展开
-
个人对结构体的一点理解
结构体:是由一系列具有相同类型或不同类型的数据构成的数据集合.结构体声明:struct:结构体关键字tag:结构体的标志member_list:结构体的成员列表variable_list:结构体声明的变量`struct tag{member_list} variable_list;一般情况下,在声明结构体的时候,要保证至少声明tag、member_list和variable_...原创 2019-09-01 21:54:02 · 433 阅读 · 0 评论 -
有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student".
/*有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。student a am ii ma a tnedutsi am a student*/#include<stdio.h>#include<stdlib.h>/...原创 2019-08-26 19:37:54 · 149 阅读 · 0 评论 -
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。 请找出这个数字。(使用位运算)
/*编程实现:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)*///思路://一个数异或同一个数两次,这个数的值不会变;//0异或任何数(1次)都等于该数;//定义一个局部变量赋值为0,让其依次与该组数据的//每一项相与,最后观察该局部变量的值,就是要找的//那个数.#include<stdio.h>#include...原创 2019-08-26 19:35:23 · 130 阅读 · 0 评论 -
不使用(a + b) / 2这种方式,求两个数的平均值
/不使用(a + b) / 2这种方式,求两个数的平均值///思路://右移一位相当于除以2//所以可用右移操作代替需除2的n次方的除法#include<stdio.h>#include<stdlib.h>//平均值函数int Average(int a, int b){ int ret; ret = (a + b) >> 1; //a加b...原创 2019-08-26 19:32:04 · 111 阅读 · 0 评论 -
二进制位模式从左到右翻转后的值
/*unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:255013...原创 2019-08-26 19:21:23 · 228 阅读 · 0 评论 -
两个int(32位)整数m和n的二进制表达式中,有多少位(bit)不同?
/*编程实现:两个int(32位)整数m和n的二进制表达式中,有多少位(bit)不同?输入例子:1999 2299输出例子: 7*/#include<stdio.h>#include<stdlib.h>//找不同bit位数量函数int fnd_different_bit(int num1, int num2){ int num; //变量num用以...原创 2019-08-20 16:39:51 · 131 阅读 · 0 评论 -
输出一个整数的每一位
/输出一个整数的每一位/#include<stdio.h>#include <stdlib.h>//输出整数每位函数int print_every_digit(int n){ int i; //变量i,用以遍历一个整数每一位 for (i = n; i; i /= 10){ //遍历一个整数每一位 printf("%d ", i % 10); //...原创 2019-08-20 16:37:28 · 301 阅读 · 0 评论 -
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列(C语言)
#include<stdio.h>#include<stdlib.h>//输出奇偶位二进制序列函数void odd_even_bity(int n){ int i; //变量i用以遍历n、len1和len2 int count = 0; //变量count判断奇偶位 int odd = 0; //变量odd用以保存奇数位 int even = 0; ...原创 2019-08-20 16:35:11 · 225 阅读 · 0 评论 -
写一个函数返回参数二进制中1的个数
/*写一个函数返回参数二进制中1的个数比如:15: 0000 1111 4个1程序原型:int count_one_bits(unsigned int value){//返回1的个数}*/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>//找二进制中1的函数int ...原创 2019-08-20 16:32:29 · 139 阅读 · 0 评论 -
在屏幕上打印杨辉三角。
/*11 11 2 11 3 3 1*/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#define row 10 //定义二维数组的行#define col 10 //定义二维数组的列//定义一个函数判断杨辉三角的层数是否超出范围int Determine...原创 2019-08-20 16:27:42 · 173 阅读 · 0 评论 -
5位运动员参加了10米台跳水比赛
/*5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。*/#include<stdio.h>#include<stdlib.h>int main(){ int ...原创 2019-08-20 16:23:10 · 166 阅读 · 0 评论 -
日本某地发生了一件谋杀案,警察排查确定杀人凶手(C语言)
//日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个//嫌疑犯的一个。以下为4个嫌疑犯的供词。//已知3个人说了真话,1个人说的是假话。//A说:不是我//B说:是C//C说:是D//D说:C在胡说#include<stdio.h>#include<stdlib.h>//找凶手函数int find_murderer(){ //有三人说真话,...原创 2019-08-20 16:17:37 · 371 阅读 · 0 评论 -
输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。
/*调整数组使奇数全部都位于偶数前面。题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。*/#include<stdio.h>#include<stdlib.h>//划分奇偶函数int divide_odd_even(int arr[],int len){ int *l...原创 2019-08-26 19:41:01 · 431 阅读 · 0 评论 -
杨氏矩阵
/*//杨氏矩阵有一个二维数组.数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在。时间复杂度小于O(N);数组:1 2 32 3 43 4 51 3 42 4 54 5 61 2 34 5 67 8 9*///思路://1.由该矩阵的特点可知,左边元素比右边元素大,//下边元素比上边元素大;//2.若以左下角元素为基准,比...原创 2019-08-26 19:44:02 · 119 阅读 · 0 评论 -
模拟实现memcpy
/实现memcpy///函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置//这个函数在遇到’\0’时并不会停下来//如果sourse和destination有任何重叠,复制的结果都是未定义的#include<stdio.h>#include<stdlib.h>#include<assert.h>#...原创 2019-08-28 08:58:16 · 155 阅读 · 0 评论 -
模拟实现memmove
/实现memmove///和memcpy的区别是memmove函数处理的源内存块//和目标内存块是可以重叠的.//如果源空间和目标空间出现重叠,就使用memmove//函数#include<stdio.h>#include<stdlib.h>#include<assert.h>//memmove函数void* Memmove(void* de...原创 2019-08-28 08:51:30 · 128 阅读 · 0 评论 -
模拟实现strcmp
/实现strcmp///第一个字符串大于第二个字符串,则返回大于0的数字//第一个字符串等于第二个字符串,则返回0//第一个字符串小于第二个字符串,则返回小于0的数字#include<stdio.h>#include<stdlib.h>#include<assert.h>//strcmp函数int Strcmp(const char* str1...原创 2019-08-27 17:50:22 · 102 阅读 · 0 评论 -
模拟实现strchr
#include<stdio.h>#include<stdlib.h>#include<assert.h>//Strchr函数char* Strstr(char* str, char c){ assert(str != NULL); //断言判断指针str指向不为空 while (*str != '\0' && *str != c...原创 2019-08-27 17:47:26 · 102 阅读 · 0 评论 -
模拟实现strstr
#include<stdio.h>#include<stdlib.h>#include<assert.h>//Strstr函数char* Strstr(const char* str1, const char* str2){ char* point1; char* point2; assert(str1 != NULL && st...原创 2019-08-27 17:44:47 · 93 阅读 · 0 评论 -
模拟实现strcat
/*模拟实现strcat//思路:1.源字符串必须以’\0’结尾;2.拷贝时源字符串的’\0’也要拷贝;3.目标字符串的空间必须足够大.*/#include<stdio.h>#include<stdlib.h>#include<assert.h>//追加字符串函数char* Strcat(char* dest, char* src){...原创 2019-08-27 17:33:37 · 90 阅读 · 0 评论 -
模拟实现strcpy
/模拟实现strcpy//*strcpy的功能是将一个字符串的内容复制到另一个字符串中,两者的长度(包括’\0’)必须相等,若前者的长度小于后者,则复制失败.//库函数中的strcpy()实现方法复制字符串函数(两字符串长度必须相等)char* Strcpy(char* dest, const char* src){assert(dest != NULL && ...原创 2019-08-27 17:29:48 · 800 阅读 · 0 评论 -
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水, 给20元,可以多少汽水。 编程实现。
/*喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。///思路://以NULL代表空瓶子;///1.若先花完钱,再换汽水://1元喝1瓶(余1NULL);2元喝2瓶(余1NULL);3元喝3(余1NULL);//4元喝4瓶(余1NULL) ……19元喝19瓶(余1NULL);20元喝20//瓶(余1NULL).//至此钱花完了,有20个空瓶,每...原创 2019-08-27 17:23:58 · 261 阅读 · 0 评论 -
一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
/*一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。*///思路://一个数与另个数异或两次,结果为原数.//1.考虑将两个只出现一次的数分别放到两个不同的数组中;//2.保证1的条件下,不能使出现两次的数分到不同数组中;//3.两个不同的数异或,总有至少一个二进制位为1;//4.其中的1就是这两个数的分歧点;//5.可以任取一个为1的二...原创 2019-08-27 17:12:45 · 273 阅读 · 0 评论 -
判断一个字符串是否为另外一个字符串旋转之后的字符串。
/*判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 =AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC*///思路://1.将一个字符串复制一次,添加到该字符串之后;//2.在1中的字符串中找是否有与另一个字符串匹配...原创 2019-08-27 16:49:59 · 299 阅读 · 0 评论 -
实现一个函数,可以左旋字符串中的k个字符。
/*1.实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB*/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>//交换函数int Swap(char* start, char* end){ char temp; ...原创 2019-08-27 16:46:49 · 206 阅读 · 0 评论 -
递归方式实现打印一个整数的每一位
/*递归方式实现打印一个整数的每一位*/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>//拆分打印整数函数int split_and_print(int n){ if (n > 9){ //若n大于9 split_and_print(n / 10); //递归...原创 2019-08-20 16:08:32 · 252 阅读 · 0 评论 -
递归和非递归分别实现求n的阶乘
/*递归和非递归分别实现n的阶乘*/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>//递归实现n的阶乘函数int recursion_fac(int n){ if (n == 1){ //若n等于1 return 1; //返回值为1 } return n*r...原创 2019-08-20 16:05:44 · 386 阅读 · 0 评论 -
递归和非递归分别实现strlen
//思路://递归://定义一个指针指向字符串;//随着指针的移动,向下传递参数,重复调用函数自身;//遇到递归边界为止,向上传递函数的返回值;//最后返回函数调用结果;//非递归://定义一个变量count初始化为0,用以记录求得的字符串长度;//通过指针遍历字符串,指针每向后移动一位,count加1,直到字符串为空;//最后返回count的值#include<std...原创 2019-08-20 16:03:35 · 208 阅读 · 0 评论 -
求出0~999之间的所有“水仙花数”并输出。
/*求出0~999之间的所有“水仙花数”并输出。"水仙花数"是指一个三位数,其各位数字的立方和恰好等于该数本身,如:153=13+53+3^3.*///思路://先通过求模取余的方法,的该数的各位;//再将各位分别求立方;//最后将求得的立方和相加,与原数比较是否相等.#include<stdio.h>#include<stdlib.h>// 找水仙花数...原创 2019-08-19 16:05:35 · 306 阅读 · 0 评论 -
输出逐行加2个' *'的图案
//在屏幕上输出以下图案//*//***//*****//*******//*********//***********//*************//***********//*********//*******//*****//***//*//思路://先将’‘最多的一行以字符串的形式保存起来;//再通过指针指向该字符串位置的改变来改变打印’'的数目://使...原创 2019-08-19 15:56:42 · 524 阅读 · 0 评论 -
数1到100的所有整数中出现多少次数字9(C语言)
/数1到100的所有整数中出现多少次数字9///思路://判断9出现的次数需要考虑个位、十位和百位(1-100);//一旦有一位出现9,计数变量立即加1;//取一个整数各位可以通过该数模10(10进制)取余,在让该数的值更新为该数除10;//重复执行上一步,直到该数模10(10进制)等于0.`#include<stdio.h>#include<stdlib.h>...原创 2019-08-19 15:36:22 · 584 阅读 · 0 评论 -
计算1/1-1/2+1/3-1/4+1/5……+1/99-1/100的值
//计算1/1-1/2+1/3-1/4+1/5……+1/99-1/100的值//思路://通过分母的奇偶性来判断该项的符号.//方法1:可以定义两个变量,一个保存分母为奇数的项的求和结果,//另一个保存分母为偶数的项的求和结果,最后前者减去后者,记得最后结果.//方案2:只定义一个变量,让依次去加每一个奇数项,减每一个偶数项,并将结果赋给自身,//直到计算完最后一项.//下面是用来参...原创 2019-08-19 15:20:58 · 2988 阅读 · 0 评论 -
将数组A中的内容和数组B中的内容进行交换。(数组一样大)
/将数组A中的内容和数组B中的内容进行交换。(数组一样大)/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 10 //定义数组大小//输入函数void Input(char str1[], char str...原创 2019-08-19 15:01:27 · 101 阅读 · 0 评论 -
求两个数的最大公约数。
/求两个数的最大公约数。/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>//输入函数void input(int *a, int *b){ printf("请输入两个数(a,b):\n"); //提示用户输入数据 scanf("%d,%d", &(*a), &am...原创 2019-08-19 14:46:53 · 151 阅读 · 0 评论 -
将三个数按从大到小输出
/将三个数按从大到小输出/#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#define N 3 //定义输入整数个数//输入函数void Input(int a[]){ memset(a, 0, N); //数组初始化为0 for (int i = 0; i &...原创 2019-08-19 14:34:58 · 300 阅读 · 0 评论 -
求10 个整数中最大值。
/求10 个整数中最大值。/#include<stdio.h>#include<stdlib.h>//比较大小函数void compare(int a[],int n){ int Max = 0; //定义一个变量保存最大值 for (int i = 0; i < n; ++i){ //循环遍历数组找最大元素 if (a[i] > ...原创 2019-08-19 14:29:40 · 256 阅读 · 0 评论 -
交换a和b两个数(含不创建临时变量)
给定两个整形变量的值,将两个值的内容进行交换。不允许创建临时变量,交换两个数的内容(附加题)#include<stdio.h>#include<stdlib.h>//方案1(不创建临时变量)void FangAn1(int a, int b){ a = a^b; //a等于a与b b = a^b; //b等于a与b(即b等于a...原创 2019-08-19 14:19:12 · 220 阅读 · 0 评论 -
判断1000年-2000年之间的闰年
/*判断1000年-2000年之间的闰年*///思路://判断闰年有两种方法://a)能被4整除,不能被100整除;//b)能被400整除;//定以一个变量year初始化为1000;//使year向2000靠近;//每靠近一年,用上述方法判定该年是否是闰年,直到通过2000.#include<stdio.h>#include<stdlib.h>//判...原创 2019-08-19 14:04:15 · 278 阅读 · 0 评论 -
输出乘法口诀表
/*输出乘法口诀表*///思路://1.定义两个变量,分别代表两个乘数;//2.通过变量的变化,反应各种可能的数乘情况;#include<stdio.h>#include<stdlib.h>//口诀表函数void Table(){ int i; //反应乘号后的乘数变化情况 int j; //反应乘号前的乘数变化情况 int n = 9; /...原创 2019-08-19 14:00:14 · 468 阅读 · 0 评论 -
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字.
//求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,//例如:2+22+222+2222+22222#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#define N 5 //定义一个常量N,表示前n项之和//输入函数void Input(i...原创 2019-08-19 16:11:21 · 716 阅读 · 0 评论