- 博客(19)
- 收藏
- 关注
原创 剑指offer day1(1.只出现一次的数字2.杨辉三角)
一、只出现一次的数字 (1)题目描述: (2)解题思路: 由于在题目的说明中要求算法具有线性时间复杂度且不使用额外空间来实现,所以可以考虑通过位运算(这里用异或) 来实现。 异或运算的特点: (1)一个数与0异或,异或的结果为这个数本身。 n ^ 0 = n; eg:101 ^ 000 = 101 (2)相同的数进行异或,异或结果为0。 n ^ n = 0; eg:101 ^101 = 000 (3)异或运算满足交换律。 a ^ b ^ c = a ^ c ^ b 根据以上解题思路,可以很快完成此
2021-07-16 00:05:09
367
3
原创 C语言实现内存相关操作函数(memset、memcmp、memcpy、memmove)
C语言实现内存相关操作函数(memset、memcmp、memcpy、memmove) 目录: 1.memset()函数 2.memcmp()函数 3.memcpy()函数 4.memmove()函数 一、memset()函数 (1)函数原型:void my_memset(void ptr, int value, size_t num);** (2)功能:初始化内存空间 (3)代码: #include <stdio.h> #include <string.h> #include &l
2021-07-14 23:16:50
657
3
原创 用C语言实现字符串函数(strlen、strcpy、strcat、strcmp、strstr)(第一部分)
用C语言实现字符串函数(strlen、strcpy、strcat、strcmp、strstr) 目录: 1.strlen()函数 2.strcpy()函数 3.strcat()函数 4.strcmp()函数 5.strstr()函数 一、strlen()函数 (1)函数原型:size_t my_strlen(const char str);* (2)功能:求除字符串长度,不包含’\0’ (3)代码: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h&g
2021-07-12 23:47:38
726
5
原创 C语言实现《猜凶手》问题(最全面的分析)
猜凶手问题 1.问题描述 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。 以下为4个嫌疑犯的供词: A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在请根据这些信息,写一个程序来确定到底谁是凶手。 2.解决方案 根据以上问题中的描述,现给出该问题的解决方案: (1)假设A说的是假话 如果A说的是假话,那么凶手就应该是A。根据嫌犯B、C、D的供词,显然不满足3个人说了真话的已知条件,故假设不成立。 (2)假设B说的是假话 如果B说
2021-06-30 23:54:00
1358
3
原创 malloc/free和new/delete的异同点
malloc/free和new/delete的异同点 1.同: 都是从堆上申请空间,需要用户自己释放空间。 2.异: (1)malloc和free是函数,new和delete是操作符 (2)malloc申请的空间不会初始化,new可以初始化 //malloc申请的空间不会初始化 int *p = (int*)malloc(sizeof(int)*10); free(p); //new申请的空间可以初始化,指针p1指向一个int类型的存储空间,并初始化其为100 int *p1 = new
2021-06-30 00:02:51
212
原创 将数组A中的内容和数组B中的内容进行交换。(数组一样大)
交换两个数组中的内容 手动输入数组大小及两个数组中的内容,程序自动输出交换后两个数组的内容。 1.主函数 int main() { int a[30], b[30]; int n; printf("请输入要交换的两个数组中元素的个数(0 < n < 30):"); scanf_s("%d", &n); SwapArray(n); return 0; } 2.交换函数 void swap(int* a, int* b) { int temp = *a; *a = *b;
2021-06-22 23:37:49
288
原创 C语言实现冒泡排序
冒泡排序 1.基本思想: 从前往后(或从后往前)两两比较相邻元素的值,若为逆序(即a[j]>a[j+1]),则交换它们,直到序列交换完。我们称之为第一趟冒泡,其结果是将最大的元素交换到待排序列的最后一个位置(或将最小元素交换到待排序列的第一个位置),关键字最大的元素如“石头”一样沉入水底,(关键字最小的元素如“气泡”一样浮至水面)。下一趟冒泡时,前一趟确定的最大元素(最小元素)不再参与比较,每趟冒泡的结果是将序列中最大元素(最小元素)放到了序列的最终位置,这样最多做n-1趟冒泡就能把所有元素排好序。
2021-06-21 12:31:02
314
原创 用C语言实现喝汽水问题(可根据自己需要动态输入钱数)
喝汽水问题 1.问题描述 喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少瓶汽水? 2.问题中存在的两种可能性 可能性1:只有一元钱,就只能买一瓶汽水喝,一个空瓶子不能用来兑换一瓶汽水; 可能性2:钱数大于等于2元,此时可以用2个空瓶子来换1瓶汽水; 3.解决方案 根据问题的两种可能性制定出相应的解决方案 可能性1的解决方案 当判断输入的钱数只有1元时,直接输出一瓶饮料; 可能性2的解决方案 当输入的钱数大于等于2元时,根据算法输出相应的饮料瓶数; 4.程序代码 #include <
2021-06-12 14:49:48
489
原创 用C语言实现打印菱形
打印菱形 1.程序代码 #include <stdio.h> void Diamond() { int count; //定义计数器,用于输出菱形中的空格 for (int i = 0; i < 7; ++i) { count = 1; //打印菱形的上半部分 for (int j = 0; j < i + 7; ++j) { if (count < 7 - i) { printf(" "); count++; }
2021-06-12 14:27:11
408
原创 用C语言实现求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字, 例如:2+22+222+2222+22222
1.代码如下 #include <stdio.h> void Sum(int *a) { int sum = 0; for (int j = 0; j < 5; ++j) { sum += *(a + j); } printf("sum = %d\n", sum); } int main() { int array[5]; while (1) { for (int i = 0; i < 5; ++i) { printf("请输入第%d个数字\n
2021-06-11 19:16:51
346
原创 C语言实现输出水仙花数(0~100000)
用C语言实现输出水仙花数 1.什么是“水仙花数”? 所谓“水仙花数”是指一个n位数,其各位数字n次方之和等于该数本身。 例如:153=1 ^3 +5 ^3 +3 ^3 2.如何求解水仙花数? 步骤1:先计算出数i的位数,用count保存; 步骤2:获得数i的每一位,并将每一位的count次方求和后保存在sum中; 步骤3:判断当前的sum和数i是否相等,若相等则输出数i,此时数i就是水仙花数; 3.代码如下 #include <stdio.h> #include <math.h> v
2021-06-11 19:10:09
5106
原创 用C语言实现输出乘法口诀表(可自行决定输出的行数和列数)
打印乘法口诀表 例如打印以下乘法口诀表: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 … 代码如下: void Mult_table(int m) { int i, j; for (i = 1; i <= m; i++) //i用来控制行数 { for (j = 1; j <= i; j++) //j用来控制列数 { printf("%d * %d = %-4d", j, i, j * i); } printf("\n"); } } in
2021-06-05 14:40:43
1232
原创 开启自己的CSDN博客之旅(从博客草鸟到博客王者)
文章目录前言一、自我介绍二、编程目标三、怎么学习编程?四、计划每周在编程上投入的时间五、最想进入的一家IT公司总结 前言 今天我将开启自己的CSDN博客之旅,在后续正式在CSDN上发布博客之前,我先给大家介绍一下我自己及后续学习计划和希望进入到的公司,希望通过这篇文章能够帮助大家对自己的学习作出合理安排。 一、自我介绍 我是***大学计算机科学与技术专业的一名大学生。近几年来计算机专业就业前景十分广阔,因此深受学生和家长关注。笔者作为一名计算机科学与技术专业的大学生更是看好计算机行业的就业前景,希望通过自
2021-05-25 17:41:36
206
1
原创 用C语言打印杨辉三角(可以根据输入的行数输出相应的杨辉三角)
C语言实现打印杨辉三角 杨辉三角如下图所示: 从图中可以看出杨辉三角中的数据有以下特点: 1.第0列及对角线上的所有元素都为1 2.其它位置的元素为上一行与该元素同列及前一列的元素相加的结果 根据上述杨辉三角中数据的特点,我们可以编程实现杨辉三角: #include<stdio.h> void PrintYangHui(int k) { int i, j, array[20][20]; //二维数组array用于存储杨辉三角 for (i = 0; i < k; i++) //给杨
2021-05-25 11:58:38
1693
原创 C语言实现队列相关操作(初始化、入队列、出队列、获取队头及队尾元素、获取队列中有效元素个数、判空、销毁)
今天给小伙伴们送上数据结构中队列的相关操作实现的代码,希望对需要的小伙伴们有所帮助,但是千万不要只是“拿来主义”,一定要进行思考后自己亲自动手写代码,这样自己的代码能力才能有所进步!最后还是那句话:“我在谢顶的路上一路狂奔,哈哈哈哈!” C语言实现队列相关操作: 1.初始化 2.入队列 3.出队列 4.获取队头及队尾元素 5.获取队列中有效元素个数 6.判空 7.销毁 .h文件中的代码如下: typedef int QDataType; // 链式结构:表示队列 typedef struct QListN
2021-05-23 19:36:52
4840
1
原创 C语言实现栈操作(初始化、入栈、出栈、取栈顶元素、获取栈中元素个数、判空、扩容、销毁)
1.用C语言实现栈常用操作: (1)、初始化 (2)、入栈 (3)、出栈 (4)、取栈顶元素 (5)、获取栈中元素个数 (6)、判空 (7)、扩容 (8)、销毁 代码如下: #include"stack.h" #include<assert.h> #include<malloc.h> #include<stdio.h> //初始化 void StackInit(Stack* ps) { assert(ps); ps->array = (DataType*)m
2021-05-21 13:02:17
5801
原创 C语言实现括号匹配算法面试题(栈实现)
1.用栈实现括号匹配算法: 感兴趣的小伙伴可以打开力扣(https://leetcode-cn.com)自己尝试做一下,一定要亲自动手做! typedef char DataType; typedef struct Stack { DataType* array;//存放元素 int capacity;//栈的容量 int size;// 表示栈中有多少个元素---栈顶 }Stack; //初始化 void StackInit(Stack* ps) { assert(ps); ps->a
2021-05-21 12:50:30
305
原创 C语言实现1.判断一个数是否为素数2.输出某一个区间内所有素数和非素数
,1.判断输入的数是否为素数; #include<stdio.h> #include<math.h> void IsPrimeNumber(int x) { int i = 2,r;//r中保存余数 while (i <= sqrt(x)) { r = x % i; if (r == 0) { printf("%d is not a primenumber!\n",x); break; } else { i += 1; }
2021-05-20 16:19:30
917
原创 C语言实现输出1900—2000年中是闰年的年份
今天是小植第一次写CSDN博客,作为“萌新”的我心里十分激动,希望在“谢顶”的道路上与大家一起进步!左脑:“我不想谢顶!”,右脑:“不,你想!”。话不多说,代码附上,求“白嫖”!求点赞! 某一年为闰年的前提条件: (1)、能被4整除但不能被100整除; (2)、能被100整除且能被400整除; #include<stdio.h> void isleapyear(int y) { while (y<=2000) { if (y % 4 == 0) { if (y % 100
2021-05-20 14:17:16
5616
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人