- 博客(33)
- 收藏
- 关注
原创 C语言学习第二章
continue关键字只能用于循环体中(while do...while for),用于提前结束当前循环体后,又从最近一层循环体开始执行。break关键字只能跳出最近一层的循环,也就是说,如果有多重循环,只能跳出最靠近break语句那层循环。// 打印第7行,此处被略过。// 输出结果: 0 1 2 3 4 5 6 7 8 9。// 输出结果:10 9 8 7 6 5 4 3 2 1。// 输出结果:10 9 8 7 6 5 4 3 2 1。
2024-10-14 19:28:27
1068
原创 【嵌入式学习笔记】STM32中断配置及相关知识
硬件要求:ISR名称需与中断向量表中的条目匹配,确保中断能正确路由到相应的处理函数。自动生成的代码:编译器和工具链可能自动生成ISR的名称和相关代码,自定义名称可能导致不匹配。编译器规范:编译器和链接器有特定规则来识别ISR名称,使用不匹配的名称会引发错误。标准化:统一的ISR名称有助于代码的可维护性和一致性。
2024-08-31 17:34:34
881
原创 stm32f407新建项目工程及烧录
1、新建一个文件夹,打开keil5将项目工程放入文件夹中。最后写一个空白代码,运行,一般情况不会出错。可以看见出现下图:感叹号表示有错。下面是使用J-LINK烧录程序。最后如图所示:点击ok就行了。4、创建对应的文件夹存放文件。2、弹出选择对应型号设备。4、建立main.c。
2024-08-14 21:17:51
930
原创 【力扣练习题】C语言答案
4、判断两数大小,p小于等于q返回p,p->next递归调用函数。2、遍历判断两个链表的单个值,用尾插法将小的值代入链表。1、如果q为NULL,p为NULL;3、如果遇到大于100000的数则返回true;5、否则返回q,q->next递归调用函数。1、将所有遍历过的值全部替换为100001。2、判断如果遇到NULL则返回false。3、如果p为NULL,返回 q;2、如果q为NULL,返回p;
2024-07-24 21:45:08
812
原创 【力扣每日一题】
3、若g[i]小于等于s[j],则temp加一,s数组开始遍历值变为j+1(防止重复判断多加);1、将遍历值对应的下标值变为负数,其中如果遍历值对应的下标值本就是负数,则不作改变。2、遍历判断,为1 temp++;不为1,temp 置0。2、两重for循环,判断g[i]是否小于等于s[j]1、定义计数变量temp和存储temp最大数的变量n。1、先排序,定义一个计数变量temp。2、遍历返回大于0的数下标。
2024-07-22 22:20:31
368
原创 C语言之2048小游戏理解分析
按键W --------------- 向上按键A --------------- 向左按键S --------------- 向下按键D --------------- 向右按键P --------------- 开始游戏按键L --------------- 结束游戏按键其他 ---------- 提示有错。
2024-07-20 12:43:53
1956
原创 【力扣C语言】每日一题
(2)如果len大于等于1,for循环求结果,第i位(这里指按自然数的第i位,例如ABC,A为第三位,C位第一位。)应该等于26的(i-1)次方乘以该位上的数字。最后相加求和输出结果。先用strstr查看是否存在匹配项,再用strncmp比较是否和匹配项相同并输出下标。(1)根据ascll码表,遍历每一位减64,使A=1;(1)将不是0的数移到最前方,并计数。(2)将后面数赋值为0,输出结果。当然也可以将第一步与第二步结合。
2024-07-15 21:01:46
1292
2
原创 【力扣C语言】每日一题—第50题,Pow(x,n)
思路:反复迭代,利用通过二进制位进行缩短计算时间。又是麻木的一天,喜欢暴力求解的我感到万分难过。当n大于零,等于零,小于零时都需要分析。
2024-07-12 21:16:14
396
原创 【力扣C语言】每日一题—第387题,字符串中第一个唯一字符
2、while循环作为外循环,for循环作为内循环,依次遍历,如果有相同的跳过,没有相同的输出,输出一个就直接break结束。给出一串字符串,找出其中第一个不重复的字符,返回它的索引。当然也可以使用两个for循环实现。希望今天的自己比昨天更好!
2024-07-11 20:26:55
387
原创 求整数数组的子集【C语言】
方法1:通过二进制位,因为n个整数数组的子集有2的n次方个,例如整数数组为{1,2,3},子集有2的3次方,8个;n&1判断最低位是否有数。如果一个子集为{2},利用二进制位2&1让其最低位空出来,依次类推。若n=3(011);n&1=1 其最低位可以得到,n>>1 = 1;本题本来打算写来回答力扣题78题求子集的,但是,才疏学浅,还是我不配。将n&1与n>>1结合就可以得到。以上述思想求整数数组的子集。最终结果将所有0都去掉了。其中需要了解关注的是。n>>1结果是n/2。可以通过下面代码解读。
2024-07-10 21:38:08
929
原创 【力扣】每日一题—第70题,爬楼梯
我开始是写了一个函数计算爬一层和爬二层的个数,之后排列求和,但是超范围了,后来改了范围,但是结果不对,,,,每次你可以爬1或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?后来看了结果越看越眼熟,这不是斐波那契数列吗?需要n阶你才能到达楼顶。
2024-07-09 22:07:19
563
原创 【力扣C语言】每日一题—第121题,买卖股票的最佳时机
1、定义最小值为999999(定大一点,小了在范围内会出现不跳转的情况导致出错,比十的四次方大就可以)定义最大值为0;3、判断最大值与利润(当前遍历值-最小值)的大小,利润大于最大值,将利润赋值给最大值。4、判断最小值与当前值的大小,最小遍历值小于当前值,将当前遍历值赋给最小值。2、i从0到pricesSize(有效数字个数);主要是暴力求解超时!
2024-07-09 22:06:08
577
原创 【力扣C语言】每日一题—第69题,X的平方根
遍历判断如果一个数的平方小于给定数,并且这个数加一的平方大于给定数,返回这个数。(该题需注意超出范围的问题,以及超出运算时间的问题)由于返回类型是整数,结果只保留。
2024-07-08 22:05:55
413
原创 【力扣】每日一题—第242题,有效的字母异位词
看了评论区大佬的java思路,豁然开朗,判断字母长度,不相等直接返回false,相等再建一个数组存放26位字母的个数,循环遍历,一个加一个减,(就是如果s的值为a,数组[0]加一,t的值为a,数组[0]减一,以此类推)最后遍历该数组,如果该数组内元素各值存在非零数,直接返回false,否则跳出循环最终结果返回true.
2024-07-06 11:17:26
664
原创 【力扣】每日一题—第217题,存在重复元素
暴力求解两重for循环直接出结果,但是超时了!如果数组中每个元素互不相同,返回。如果任一值在数组中出现。感觉自己越来越厉害了,哎,不过如此,嘿嘿嘿。
2024-07-05 21:32:52
375
原创 【力扣】每日一题—第169题,多数元素
的元素,所以排序之后中位数一定是多数元素。用qsort()函数排序,最后返回numsSize/2的数。最后,这题可能太简单了,官方居然没有给C的答案,只给了C++的,还好我会,你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。多数元素是指在数组中出现次数。多数元素是指在数组中出现次数。感觉自己越来越厉害了,
2024-07-05 21:12:10
165
原创 【力扣】每日一题—第88题,合并两个有序数组
为了应对这种情况,`nums1` 的初始长度为 `m + n`,其中前 `m` 个元素表示应合并的元素,后 `n` 个元素为 `0` ,应忽略。`nums2` 的长度为 `n`。给你两个按 **非递减顺序** 排列的整数数组 `nums1` 和 `nums2`,另有两个整数 `m` 和 `n` ,分别表示 `nums1` 和 `nums2` 中的元素数目。请你 **合并** `nums2` 到 `nums1` 中,使合并后的数组同样按 **非递减顺序** 排列。
2024-07-05 20:55:00
597
原创 【力扣】每日一题—第35题,搜索插入位置
int num=0;break;num=i;break;return num;再接再励吧!!!!!!!脑袋空空。
2024-07-04 19:47:29
514
原创 力扣第58题——最后一个单词的长度
每日一题,本来写的是有效的括号,但是总是不对,链表知识还没复习,救命,,再接再励吧!!!!!!!脑袋空空。欢迎大佬指明更简单的道路,感谢!!
2024-07-02 21:44:01
213
原创 【力扣】第14题——最长公共前缀
我的解题思路:求最小的单个单词组的长度;两重for 循环令第一个字符串与其他字符串做对比,如果不相同,赋值为'\0'。最终返回strs[0]就是公共前缀。输入:strs = ["flower","flow","flight"]输入:strs = ["dog","racecar","car"]看了一下别人的代码和思路,改进了一下VS代码。如果不存在公共前缀,返回空字符串。解释:输入不存在公共前缀。仅由小写英文字母组成。用上面思路打开VS测试。测试当然是结果成功哈!
2024-07-01 18:38:42
410
原创 排序算法之冒泡排序(从小到大)C语言
a[0]=0 与 a[7]=2 比较之后 a[0]=0 a[7]=2。a[0]=0 与 a[6]=3 比较之后 a[0]=0 a[6]=3。a[0]=0 与 a[2]=7 比较之后 a[0]=0 a[2]=7。a[0]=9 与 a[9]=0 比较之后 a[0]=0 a[9]=9。a[0]=0 与 a[8]=1 比较之后 a[0]=0 a[8]=1。a[0]=0 与 a[1]=8 比较之后 a[0]=0 a[1]=8。
2024-06-29 18:45:52
841
原创 【力扣】第2710题——移除字符串的尾随零
产生的第一个问题是字符串输入,怎样让他以字符串输出,数字的话可以用除,字符串咋办,于是想到用数组解决,写了一串去求解这个字符串的长度,(全篇没有想到用strlen函数)之后就产生了复杂的想法(遍历循环判断将数字符串后面的零全部换成'\0',这样输出的字符串后面就没有0了,于是在我暴力求解下,这个解题答案出来了。没有脑子的我拿到了这个题目,看了看,感觉不难,其实就是不难,无脑打开VS。解释:整数 "123" 不含尾随零,返回整数 "123"。提交结束看见官方发的C代码我是个小丑,,,输出:"512301"
2024-06-29 14:12:05
488
原创 【力扣】第十三题—罗马数字转整数
将数组代入,赋值给int变量(因为char类型占一个字节范围在(0~255))再写一个循环判断数字长度,写个循环将罗马数字挨个转为数字,再根据规则计算出罗马数字转成数字之后的数值。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。例如, 罗马数字 2 写做 II ,即为两个并列的 1。通常情况下,罗马数字中小的数字在大的数字的右边。
2024-06-28 22:14:28
452
原创 【力扣】第九题——回文数
我的解题思路:小于零的都不是回文数,零是回文数,将数值x按位输入到数组中,利用判断是否关于中间数对称判断是否为回文数。给你一个整数 x ,如果 x 是一个回文整数,返回 true;出错原因:不应该写printf("true");例如,121 是回文,而 123 不是。是指正序(从左向右)和倒序(从右向左)不幸的消息是带入力扣一直出错。否则,返回 false。
2024-06-27 16:36:21
693
原创 力扣第一题:两数之和——C语言
/nums为数组,numsSize为数值的个数(或许也可以是数组的下标),target为设定的两个数的和,returnSize定义的指针存放返回值下标的。还是看不懂,就把代码整体Ctrl+C 、Ctrl+V了,结果是错了,,,请你在该数组中找出 和为目标值 target 的那两个整数,写完了准备提交才发现力扣的答案开头看不懂,,,打开翻译软件翻译。返回的数组必须是malloced,这个我还没学,就很抓马,,,最后在我的不懈更改下,也算是成功了,总体测试都可以了。
2024-06-26 20:14:34
498
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人