- 博客(42)
- 收藏
- 关注
原创 【C语言】有序数组的平方
该代码的时间复杂度为O(n),采用双指针的方式,一个指针指向数组的起始位置,一个指针指向数组的末尾,然后逐一比较。给你一个按非递减顺序排序的整数数组 nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。
2025-02-17 15:52:28
261
原创 【C语言】移除元素
给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
2025-02-16 16:02:43
147
原创 【C语言】二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。下面的代码将返回指针的大小,而不是数组的大小。如果将数组传递给函数,数组会退化为指针,此时 sizeof 将返回指针的大小,而不是数组的大小。
2025-02-12 01:25:00
200
原创 【C语言】#define和typedef的区别
无类型检查:由于是在预处理阶段执行的简单文本替换,编译器不会对 #define 定义的内容进行类型检查。类型别名:typedef 用于为现有类型创建一个新的名字,使得代码更加易读或简化复杂类型的声明。文本替换:#define 主要用于文本替换,在编译前将指定的标识符替换为相应的值或表达式。类型安全:由于是在编译阶段处理的,编译器会对 typedef 定义的类型进行类型检查。typedef 是关键字,用于给现有的数据类型创建一个新的名字。作用范围特定于类型:只能用于定义类型的别名,不能用于定义常量或函数宏。
2025-02-10 23:48:54
182
原创 【C语言】常量指针和指针常量,指针数组和数组指针,指针函数和函数指针怎么区分?
指向一个完整数组的指针,虽然p_arr1存放的是数组的首地址,但是范围是全部数组的范围,p_arr1+1内存地址加12个字节。:指向函数的指针,函数的名称本身也是函数指针。:无法通过该指针修改指向地址中的内容。:数组内是指针类型的数据。:指针指向的地址不可变。:返回值为指针的函数。
2025-02-05 21:44:52
662
1
原创 【C语言】结构体对齐规则
1.第一个数据成员:结构体的第一个数据成员总是放置在其起始地址处,即偏移量为0的位置。2.这意味着编译器可能会在结构体末尾添加填充字节,以确保整个结构体满足上述对齐要求。2.其他数据成员的对齐:每个后续成员的存储地址必须是其有效对齐值的整数倍。在32位Linux系统上,默认为4。在ARM CPU上,默认也为8。在64位系统上,默认为8。
2025-02-02 14:20:25
323
原创 vscode中的.json文件的作用
Launch.json用于配置vscode编辑器的调试与烧录设置。Setting.json用于配置vscode编辑器的系统设置。Task.json文件用配置工作区的shell命令。
2025-02-01 23:04:50
128
原创 【C语言】模拟qsort的功能实现一个通用的冒泡排序
代码思路: 定义一个10位的整形数组,所以需要9次大比较,第一次大比较需要逐个比较9次;第二次因为最后一个数确定了,所以只需要比较8次;由此可见有两个for循环嵌套而成。
2022-08-23 18:32:27
422
1
原创 【C语言】有一个二维数组,数组的每行从左到右是递增的,每列从上到下是递增。在这样的数组中查找一个数字是否存在。要求时间复杂度不小于O(N)。
代码思路: 因为数列是从左到右是递增的,每列从上到下是递增的,先设置一个数与右上角的数比较若等于打印“找到了";若小于,行加1,再比较,若大于列减1。再循环,若超出最大行数和列数。在一个每行从左到右是递增的,每列从上到下也是递增的数列(如下数组)中,找一个数字是否存在。
2022-08-20 16:42:47
533
原创 【C语言】调整数组使奇数全部都位于偶数前面
基本思路:设置一个数a,循环遍历寻找奇数,当找到奇数时用第三方tmp储存该奇数,再经过循环遍历将两个奇数之间的偶数向后移一位,在将后面的那个奇数储存到一系列偶数中的第一个偶数中去。
2022-08-19 21:14:04
376
原创 【C语言】一组数据中只有一个数字出现了一次,其他所有数字都是成对出现的,找出这个数字。(使用位运算)
利用异或(^)操作符将所有数字全部异或,相同的数字异或为0;所以异或最后得到的是那个单个出现的数字,即4。
2022-08-19 15:46:01
406
原创 【C语言】1.编程实现: 两个int(32位)整数m和n的二进制表达中, 有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
## 代码思路1、代码1:求两个二进制数有多少个不同位,先将两个二进制数异或,不同位上得1,再将异或后的结果经过下面循环得到的count就是不同位大多少(这就想是10进制一样,一个数(%)余10如果不等于0就表示最低位上有数,在经过(/)除2循环,而二进制就是求有多少数位上有1就表示有几个位不同)i=m^n;while(i) { if(i%2==1) { count++; } i=i/2; }2、代码2:先将两个二进制数异或,再将异或后的数经过下面循环得到的count就
2022-08-18 14:46:05
351
原创 【C语言】获取一个二进制序列中所有的偶数位和奇数位,分别输出二进制序列
代码】【C语言】获取一个二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
2022-08-18 12:33:56
121
原创 【C语言】编写一个函数,将参数字符串中的字符反向排列(利用递归实现),不能使用C函数库中的字符串操作函数
将参数字符串中的字符反向排列,例如输入abcd,输出dcba。
2022-08-17 12:33:33
128
原创 【C语言】写一个递归函数,输入一个非负整数,返回他每个数位上的数之和
写一个递归函数DigitSum( ),返回输入的每个数位上的数之和。例如调用Digit Sum(1729),则应该返回1+7+2+9,它的和是19。
2022-08-17 11:04:03
521
原创 【C语言】函数:利用函数实现两个数的交换
【C语言】函数:利用函数实现两个数的交换C语言中的的操作符“^”(按位异或)来实现,先将啊a^b赋给a,此时a=a^b;再将a^b赋给b,此时b=a(后面的a的值)^b=a^b^b=a(初始的a的值);最后将a^b赋给a,得a=a^b=b。(注意a,b的值在不断变换,注意理清其中的逻辑关系)创建一个函数,实现两个数的交换。...
2022-07-26 17:14:45
1748
原创 【C语言】函数:实现一个函数,打印乘法口诀表
【C语言】实现一个函数,打印乘法口诀表口诀表的行数和列数自己指定,输入9,输出99口诀表,输入12,输出1212的乘法口诀表。
2022-07-26 16:51:07
2610
原创 【C语言】写代码可以在整形有序数组中查找想要的数字
【C语言】写代码可以在整形有序数组中查找想要的数字1、规则介绍 2、简单代码实现 3、折半查找
2022-07-25 03:28:14
281
原创 【C语言】模拟三次密码输入(分文件编写)
C语言,模拟三次密码输入1、分文件编写 2、分步解析(1)在"app.c"定义储存的密码(2)打印输入代码场景(3)判断是否输入密码(4)输入密码(5)把函数名写入到"app.h"头文件中(6)编写main函数,引入头文件和函数......
2022-07-24 19:40:57
935
原创 【C语言】求出0~999之间的所有水仙花数
水仙花数(Narcissisticnumber)也被称为超完全数字不变数(pluperfectdigitalinvariant,PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrongnumber),水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身(例如1^3+5^3+3^3=153)。...
2022-07-22 20:09:49
466
原创 【C语言】编写程序数一下1到100的所有整数中有几个数字含有数字9,并打印
【C语言】编写程序数一下1到100的所有整数中有几个数字含有数字9,并打印
2022-07-22 16:23:34
958
原创 【数字电子技术基础】数字电子钟设计
数电设计数字电子钟设计完整仿真电路图完成仿真电路图1、设计目的2、设计要求3、功能拓展4、所用元件5、实验原理6、设计实验及原理
2022-07-21 15:10:53
21945
10
原创 【C语言】计算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/6......+1/99-1/100利用for循环实现
2022-07-21 11:56:31
254
原创 【C语言】给定两个整形变量的值,将两个值的内容进行变换
【C语言】给定两个整形变量的值,将两个值的内容进行变换(1)简单的实现:定义一个中间变量t。(2)进阶的实现(不允许创建临时变量):利用C语言中的的操作符“^”(按位异或)来实现。...
2022-07-20 13:41:23
286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人