- 博客(22)
- 收藏
- 关注
原创 c语言的练习-字符串的练习-回文串的练习
本文分享了处理字符串输入时遇到的换行符问题及解决方案。作者发现fgets()函数会在输入后自动添加换行符'\n',导致后续处理出现问题。通过重新编写代码,采用字符数组ch[100005]存储输入,使用strlen()获取长度并去除末尾换行符。在判断回文时,先去除字符串中的空格,再通过双指针法比较首尾字符是否对称。最终实现了一个健壮的程序,能够正确处理包含空格的字符串并判断是否为回文,遇到"2013"时终止程序。
2026-05-16 19:09:13
552
原创 c语言的练习-字符串的练习-单词的计数
本文介绍了统计字符串中单词数量的C语言实现方法。首先使用fgets函数读取包含空格的字符串,并处理末尾的换行符。然后通过遍历字符串,设置inword标志位来区分单词边界:遇到空格时标记不在单词内,当从非空格字符进入单词时计数器加1。这种方法能准确统计连续非空格字符构成的单词数量,最后输出计数结果。代码考虑了字符串边界情况,使用105字符数组避免越界,并通过标志位确保每个单词只计数一次。
2026-05-11 19:30:09
460
原创 c语言的练习-字符串的练习1-密码的转换
本文介绍了C语言字符串处理的方法,重点讲解了如何实现字符转换功能。作者首先讨论了C语言中字符串的本质(以\0结尾的字符数组),然后详细说明了一个将小写字母转换为对应数字的函数实现。文章还展示了主函数中使用fgets()读取输入、strlen()获取长度,并通过isupper()/islower()判断字符类型的方法。最后给出了完整代码,实现了题目要求的大写字母转换、小写字母映射为数字等功能。
2026-05-10 21:31:32
570
原创 c语言的练习-二维数组的练习-回形输出数组
本文介绍了如何用C语言实现回形矩阵输出。通过定义四个边界变量(top,bottom,left,right)来控制矩阵填充方向,依次按顺时针方向填充数字1到n*m。算法先从左到右填充顶行,然后从上到下填充右列,再从右到左填充底行,最后从下到上填充左列,每次填充后调整相应边界值。代码使用二维数组存储矩阵,通过循环控制填充过程,最后按行输出矩阵。这种方法保证了代码的健壮性,适用于任意m×n矩阵的回形输出。
2026-05-07 22:14:12
532
原创 c语言的练习-二维数组的练习-鞍点的寻找
这篇文章详细讲解了如何在矩阵中寻找鞍点(即行上最小且列上最大的元素)。作者通过定义m×n矩阵,使用双重循环遍历每个元素,分别判断是否为行最小值和列最大值。通过设置flag变量标记是否找到鞍点,若未找到则输出"None"。代码实现中特别注意了数组边界处理和多重循环的优化,最终提供了一个完整的C语言解决方案。文章对算法逻辑和代码实现都做了清晰说明。
2026-05-06 21:39:23
713
原创 c语言的练习-二维数组-矩阵的旋转(2)
本文探讨了一个关于矩阵旋转的编程问题:给定两个n×n矩阵A和B,判断矩阵A通过0°、90°、180°或270°顺时针旋转后是否能得到矩阵B。文章详细讲解了解决思路:首先比较两个矩阵是否相同,若不同则依次进行90°旋转并比较,最多旋转三次。关键点在于实现矩阵旋转函数和比较函数。旋转函数通过转置和左右对称操作实现90°旋转,比较函数则逐个元素对比。最后通过标志变量判断是否匹配,输出YES或NO。文章提供了完整的C语言实现代码,包括输入处理、矩阵比较和旋转操作的详细实现。
2026-05-01 10:33:37
753
原创 c语言的练习—二维数组的练习(对称矩阵的判定)
本文探讨了判断对称矩阵的算法实现。通过分析矩阵对称性的特点(即元素a[i][j]必须等于a[j][i]),作者设计了一个统计匹配次数的解决方案。核心思路是遍历矩阵所有元素,统计满足对称条件的元素对数,若统计结果等于矩阵元素总数(n²)则判定为对称矩阵。文章详细展示了C语言实现代码,包括数组输入、条件判断和结果输出等关键步骤,并解释了使用n²作为判定标准的数学依据。作者坦言当前算法时间复杂度为O(n²),期待未来学习更优化的算法。该解法适合编程初学者理解对称矩阵的基本概念和基础实现方法。
2026-04-29 10:43:49
699
原创 c语言的练习-二维数组的练习-(矩阵的旋转)
这篇文章探讨了二维数组旋转输出的解题思路。作者通过坐标轴分析找到了规律:外层循环控制列(j),内层逆序控制行(i)。文中详细解释了循环变量的设计原理,并给出了完整的C语言实现代码,其中通过双重循环实现了矩阵的逆时针90度旋转输出。最后提醒注意数组边界处理,建议预留额外空间防止越界。代码示例展示了如何按题目要求格式化输出旋转后的矩阵。
2026-04-27 20:41:31
721
原创 c语言的练习-二维数组的练习一(杨辉三角的输出)
本文通过对比九九乘法表和杨辉三角的编程实现,分享了编程学习的心得体会。作者回忆初学C语言时从死记硬背到理解透彻的转变过程,强调真正掌握知识需要能够清晰讲解给他人。以九九乘法表为例,详细分析了for循环嵌套的逻辑,包括变量i控制循环轮数、j控制输出数量等关键点,并将这一思路迁移到杨辉三角的实现中。最后给出了完整的杨辉三角代码实现,其中特别处理了边缘数字(j=0或j=i时值为1)的情况,并提醒注意数组边界问题。文章展现了编程学习中的思考过程和知识迁移能力。
2026-04-26 19:23:28
630
原创 c语言的练习- 一维数组练习
本文记录了作者在学习C语言编程过程中的心得。作者分享了一维数组的学习经验,并准备转向二维数组和字符串的学习。文中详细讲解了一个涉及奇偶数判断的编程题目,强调要注意数组越界问题和变量初始化。通过具体代码示例,展示了如何统计数组中奇偶数的数量并进行比较判断。作者建议初学者要多实践、多踩坑,才能积累经验。最后提供了完整的解题代码,并鼓励读者点赞支持。
2026-04-25 10:52:48
442
原创 c语言的练习-数组的练习(一题多解)
本文分享了作者在解决一个编程问题时对冒泡排序的新理解。文章详细描述了问题场景:需要确定选手ZenFish在排序后的排名位置。作者最初使用冒泡排序后直接遍历查找目标值的方法存在问题,会导致在有相同分数时定位到最后一个匹配项而非第一个。通过思考,作者提出了三种解决方案:1)在首次匹配后立即跳出循环;2)统计比目标值小的元素数量;3)反向遍历寻找第一个匹配项。文章包含完整的代码实现,并强调了冒泡排序的稳定性特点。最终,作者通过这个案例体会到适当休息可能带来解题灵感的重要性。
2026-04-24 16:35:44
659
原创 c语言的练习-数组的练习-冒泡排序(分组排序)
先分享我的感受吧,我做这道题的时候,改来改去吧,在这个过程中我也是成功的造成了许多本来没有的错误,使得代码满目疮痍,所以我对于调试又有了一个新的观点。我想,我应该在题目WA的时候,保持冷静,不妨从头开始再次读这道题,读自己写的代码,分析每一步代码的作用,思考我哪一步做的有问题,这或许是我目前应该改正的问题。所以我们这里设置sz[10005],那么我们设置一个数组,i就要小于m*n,因为有m组数据,而一组数据有n个数字,所以一共是m*n个数字。首先我们有题目知道一共有m组数据,每组数据又有n个数字,
2026-04-23 21:45:31
325
原创 c语言的练习-数组的练习 (细节题)
本文详细讲解了一个关于数字排序的编程问题。作者通过分析题目要求,提出先计算数字各位数之和并存储,然后使用稳定的冒泡排序方法进行排序。重点强调了在排序过程中需要使用两个临时变量来保证数组交换的稳定性,以及在多组输入时初始化sum数组的重要性。最后给出了完整的C语言实现代码,包括输入处理、数位求和、排序算法和输出结果等关键步骤。该解决方案注重细节处理,特别是针对排序稳定性和数组初始化等易错点进行了详细说明。
2026-04-22 15:10:01
925
原创 c语言的练习-数组的练习
本文比较了while(1)和while(scanf("%d",&n)!=EOF)在处理多组输入时的差异。作者通过实际案例发现,while(1)会导致死循环问题,而后者能正确处理多组输入。文章详细讲解了使用scanf!=EOF方法的实现过程:初始化变量、循环读取数据、计算平均值、统计小于/等于/大于平均值的数量,并强调每次循环前重置变量的重要性。最后提供了完整代码示例,展示了如何正确实现多组输入处理,并建议避免使用while(1)这种可能导致问题的写法。
2026-04-21 09:57:02
642
原创 c语言的练习-数组练习
在除去n=0的情况时,其余需要任意层数的功法,在学会当天都不会离开,小鑫都要与这两个人把酒言欢,所以最后的printf("%d\n",sum+1). 是sum+1,而不是sum,这里要特别注意,我们无需管理n=0时的情况,而sz[1]和sz[2]的值我们已然给定,所以我们要使得i从三开始,在第n个数字结束,那么显然的第n个数字的索引是n+1;当然了 i<=n 也能有同样的作用,但是n+1能够增加代码的可读性,能够使得阅读代码的人更好理解你的意思。这样就解决了所有的问题,也是我代码的思路,下面的是我的代码。
2026-04-20 22:05:20
400
原创 c语言的练习-数组的练习(冒泡排序)
本文详细讲解了一道关于数组插入和排序的编程题。作者作为初学者,使用冒泡排序实现功能,并分享了解决边界问题的小技巧(定义105大小的数组)。文章逐步解析了代码逻辑:1)使用while循环处理多轮输入;2)将新元素m插入数组;3)调整冒泡排序的循环次数;4)处理输出格式。特别强调了初学者易犯的错误(如==与=的混淆)和调试经验(漏写换行符导致的问题)。最后给出了完整代码,展现了从问题分析到实现的完整思考过程。
2026-04-18 21:24:24
469
原创 c语言的学习-学习数组的第二天
本文分享了作者在解决数组问题时的经验教训。通过一道编程题,作者讲述了因数组越界导致的运行时错误,建议将数组长度多定义5个元素以防边界问题。解题思路包括:定义足够大的数组(100005),计算总和后通过奇数位和推导偶数位和,最后比较两者大小。文中还提到代码粘贴时出现的问号问题,希望读者能解答。作者总结了自己从错误中学习的经验,并鼓励读者点赞支持。
2026-04-16 19:11:00
210
原创 c语言的练习-数组的初次练习
文章分享了作者解决数组交换问题的思路。首先通过输入获取数组元素,并强调数组索引从0开始的特点。然后通过遍历数组找到最大值和最小值及其索引位置,使用临时变量完成元素交换。最后输出处理后的数组。作者反思了自己作为初学者的不足,详细解释了数组越界等概念,并欢迎读者提出建议。整个过程展现了从遇到问题、调试到最终解决的完整思考路径,对数组操作的基本方法进行了清晰说明。
2026-04-15 19:40:57
335
原创 c语言的练习-汉诺塔问题
这篇文章是一位编程初学者分享汉诺塔问题的解决心得。作者通过手绘2-4层金片的移动过程,总结出关键规律:当金片数为偶数时首个金片移到B柱,奇数时移到C柱。文章详细讲解了递归思路,即解决n层问题需先解决n-1层问题,并附上代码实现。作者用通俗易懂的语言和手绘图解,展示了如何将n-1个金片从A柱经C柱移到B柱,再将第n个金片直接移到C柱,最后将n-1个金片从B柱移回C柱的完整过程。虽然自称是新手,但作者通过实践和请教他人,成功理解了汉诺塔问题的递归解法。
2026-04-14 09:05:29
1086
原创 c语言的练习
本文分享了解决方格路径计数问题的思路演变过程。作者最初采用错误的分步计算法,后经同学提示发现该问题与组合数相关。通过分析,发现从(0,0)到(i,k)的路径数等于C(i+k,i),即从i+k步中选择i步水平移动的组合数。文章给出了阶乘计算的代码实现,并提醒注意使用long long类型避免数据溢出。作者承认作为初学者尚不理解动态规划解法,但通过组合数思路成功解决了该问题。
2026-04-13 14:29:25
527
原创 c语言的练习
摘要:文章分析了爬楼梯问题与斐波那契数列的关系,指出登上第n级台阶的方法数等于前两级方法数之和。作者通过举例说明这一规律,并分享了在代码实现中如何利用临时变量交换数值的方法来解决迭代问题。文章采用轻松的口吻,穿插了个人学习编程时的思考过程,包括对变量赋值的理解和对英语单词的记忆。
2026-04-13 07:32:23
197
原创 【无标题】
因为最开始的时候我并未想到h在多次除以2的过程中出现小数的问题,于是我定义h的数据类型未int 类型,最终导致后面多组测试的结果错误,而我因为只测试了两组数据,造成没有发现该问题的出处,这是我需要改正的问题。//每一次球触底反弹后再次上升的最大高度,由于此时还未更新新的h所以就是先前h的一半距离。在最初的时候我最开始的代码与答案如出一辙,但是后面在出现小数点之后,则出现了错误,//因为在这之后每次再次触底反弹之前都需要经过两次h的距离。//此时的h还未除2,就是最开始的h。
2026-04-12 08:59:01
19
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅