- 博客(10)
- 收藏
- 关注
原创 冒泡排序典型例题:9到0升序排列
本文介绍了使用冒泡排序算法将整型数组9~0从小到大输出的实现方法。通过嵌套循环结构,外层控制遍历次数,内层进行相邻元素比较和交换。关键点包括:1)数组作为指针传递;2)在函数外计算数组长度;3)典型的冒泡排序实现方式。代码示例展示了完整实现过程,最终输出排序后的升序数组。该算法时间复杂度为O(n²),适合小规模数据排序。
2025-09-20 11:54:55
456
原创 递归思维破解汉诺塔
汉诺塔问题通过递归思维将复杂问题分解为相同的小环节。从n=1到n=3的移动过程可归纳出规律:移动n个圆环需先将前n-1个移到中转柱,移动第n个到目标柱,再将前n-1个移到目标柱。递归算法只需关注基本步骤,代码简洁高效,体现了"分而治之"的思想。该案例展示了递归在解决重复性子问题中的优势。
2025-09-19 18:32:16
558
原创 递归算法实战:手写strlen函数
思考:题目要求设计一个函数(不妨取名为my_strlen),输入一个数组之后能够输出其长度。初步的思路是:函数my_strlen首先检测第一个字符是不是\0,如果是则返回0,如果不是则返回1+my_strlen(str+1),通过重复这一简单的同类步骤从而实现递归,直到检测到\0。递归算法是通过让函数调用自身,将复杂问题拆分为一个个简单的同类步骤,下面用一道题目训练这种思维。题目:设计一个函数实现strlen()函数的作用。
2025-09-18 21:01:20
563
原创 用指针在自定义函数内间接改变变量值
但是这个代码无法实现交换,由调试可知,当将实参ab传递给形参xy时,形参是实参的临时拷贝,有自己的独立内存空间地址,形参的改变不会影响实参。//此处取ab的地址传给swap函数,由*px和*py接收。1.(错误代码)直接的想法是设计一个自定义函数swap来实现值的交换,需要第三个变量c。修改方法:采用指针,将ab的地址赋给变量*px和*py,从而实现间接修改ab的值的作用。题目:交换两个整形a和b的值。
2025-09-15 09:01:08
477
1
原创 用rand函数实现多轮随机猜数字游戏
可以使用rand()函数生成伪随机数,但是rand()其实会以一个起点根据一套既定公式生成一串数字,如果起点不变,则后续生成的数字顺序都是一样的;所以要用srand()函数来定义起点。而时间戳(用time()获取)是很合适作为起点的,因为它的数值能够随着时间自动变化;另外,实现多轮游戏可以用while(1)循环实现(因为不需要跳出循环),一轮循环结束的条件用break。//rand按照srand决定的起点,按照固有公式算出一系列伪随机数。
2025-09-14 10:11:56
1012
原创 C语言实现阶乘的两种简洁方法
摘要:本文讨论了用C语言实现阶乘计算的两种方法。第一种方法使用变量k保存初始n值,在循环中对n递减运算;第二种优化方法直接利用循环变量i进行累乘,简化了代码逻辑。两种方法都通过循环结构实现了从1到n的累乘运算,最终输出n!的结果,但第二种方法更为简洁高效。
2025-09-13 12:55:21
577
原创 计算机思维解密:如何找最大数
从这道题出发,我们可以体会计算机思维与人类思维的不同之处:人类思维是整体性并行处理的,也就是一次性看到四个数据并选出最大值;而计算机思维需要顺序性串行处理,也就是逐个比对数据,一次只处理一个。基于计算机思维的这种特性,可以得出该题的大体思路是:先让第一个整数作为最大值,然后依次与后面的整数比对,遇到更大的整数就替代原来的最大值。也就是说,需要两个变量来承接整数并通过循环来比较。注意:1.max=n的意思是将n的值赋给max,顺序不要搞错。题目:输入四个整数,输出最大的数字。
2025-09-12 17:53:53
306
原创 1-100奇数的C语言解法
2.”i++"要放在if语句之外而非之内。在前一种情况中,程序运行出了if条件判断后会给i+1;在后一种情况中,程序在if条件判断内给i+1,出了if之后会因为不符合if条件而被卡住。分析:本题目涉及大量重复步骤,故考虑使用循环结构;得到的结果直接输出即可,不必再进行进一步整合处理,故用变量而非列表来存储值。1.if(condition)后不要加“;这会导致原本应该执行的语句不经过if条件判断而被反复执行。题目:输出1-100以内的所有奇数。//原本应该执行的语句。
2025-09-11 15:08:13
513
原创 C语言比大小:三目操作符的运用
这是一道入门级别的比大小题目,思路是输入x和y,用if-else语句判断大小并输出对应结果,主要运用了C语言中的三目操作符exp1?:本文涉及的题目来源于洛谷在线评测平台,解题思路和代码实现为作者原创。分享编程题解旨在技术交流学习,符合知识共享原则。如对题目版权有疑问,可联系平台或作者处理。1.注意x的范围超过了int,所以需要用long long数据类型。
2025-08-31 16:58:11
213
原创 洛谷入门:C语言顺序类算法题
这是一道关于并联电阻计算的入门算法题。解题要点包括:1)定义返回double类型的函数R;2)浮点运算中数值需用1.0形式表示;3)使用double类型声明变量r1,r2;4)直接输出函数结果。示例代码通过R(r1,r2)函数计算并联电阻值,公式为1/(1/r1+1/r2),主函数输入两个电阻值后直接输出结果(保留两位小数)。该题主要考察顺序结构编程和浮点数运算的基本概念。
2025-08-31 14:45:37
175
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅