- 博客(17)
- 收藏
- 关注
原创 [c语言]个人总结——二分算法
原因很简单,大家可以用上面给大家出的题再来试试,就会发现,l 始终会在8这个位置不断循环,而循环的原因就是,当奇数除不尽时,不是四舍五入,二是舍弃余数,所以当我们向数组的末端不断逼近时,必定会出现上面给出的情况,会导致二分陷入死循环。题目为"上图是已经经过不断二分,剩余的三个数,l在7号位,r在9号位,目标数是5,请进行二分",大家可以进行尝试,就能发现只有这种l = mid + 1的情况下才会不发生死循环,而之所以要让r = mid,是因为保证如果数组中有多个目标数,那么最后选的数一定为第一个出现的数。
2023-10-23 17:05:15
208
原创 【C语言】排序详解——冒泡排序
前言:冒泡排序可以说是排序系列中最简单也最基础的一种排序的方式,尽管它十分的简单易懂,但依旧会有一些小问题是大家可能忽略的,因此我打算将不同排序分成单独的文章进行讲解,这样既不会显得臃肿,同时也可以讲得更加仔细,废话不多说,开干。一.概念简述从上图我们不难看出冒泡排序应该有两个循环:第一个循环是小循环,该循环的作用是——在某个数组内依次进行两个数的大小比较;第二个循环是大循环,改循环的作用是——决定小循环的次数那么概括来说就是,在一定次数内,数组按照一定的大小顺序进行两两比较,满足顺
2021-12-29 21:19:44
14856
4
原创 【c语言】这些函数递归陷阱你知道吗?
所谓陷进,其实就是我在学习过程中遇到的难点和易错点。我将其总结并分享给大家,尽管这些陷进在大佬面前可能不值一提,但如果能帮到你,拜托点一个免费的赞吧。首先给出我初学时写的思维导图:问题一:不要轻易在使用递归时新定义变量。想必学过递归的朋友都应该知道最基础的两种常见的递归限制条件:第一个是循环;第二个是分支。这两种的不同使用常见,咱们之后再讲,我们先讲如果在这两种情况下定义变量会有什么区别。我先给出两个递归代码:int Pow(int n,int k){ if (.
2021-10-06 10:59:52
275
4
原创 【c语言】写出第一个游戏:猜数字
先给出我的思维导图:猜数字的基本要求有四个:1.有菜单供玩家选择2.有一百个数字,并且系统会随机给出一个数字让玩家猜。3.猜错时,系统会给出时猜大还是猜小4.游戏能重复玩耍写代码的流程及问题的解决1.创建一个菜单:建立菜单首先我们考虑使用函数menu。菜单建立如下:void menu(){ printf("***********************"); printf("***** 1.paly ********"); printf("***.
2021-10-04 19:39:06
468
原创 【c语言】浅谈不同分支和不同循环的差别
备注:本文章是通过我刷题得到的领会,并不一定正确欢迎指教。一.分支(针对于switch与if或ifelse)区别一:分支语句switch就想是选择题,例如:
2021-09-26 17:18:59
693
原创 【c语言】关于美丽的c语言书法
作为一个新人,尽管c语言并没有学多久,可我依旧感觉到一个写好一个优美的代码是多么的让人赏心悦目,而今天我想要浅谈一下关于阅读《高质量 C++/C 编程指南》(后面附链接)的感受。一.空行空行就像平时写文章的分段一样,它能使我们的代码看起来更加的清爽,轻松。空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,但是值得, 所以不要舍不得用空行。空行的应用场景:1.在每个类声明结束后,每个函数定义结束后都应加入空行,例如:// 空行 void Function1(…) {
2021-09-21 16:53:10
217
原创 【c语言】新手初学while循环,for循环的一些想法与思考
循环语句有三种,while循环,for循环,do while循环。由于只学了前两种,因此只能将两种进行比较。但在比较两者前,我认为新手有必要认真的学习良好的代码习惯,这里我使用的是《高质量 C++/C 编程指南 》,尽管年代比较久远但依旧受益良多,不过只推荐读前三章。下一章我应该会讲一下我通过读这本书的心得。区别:在有了良好的代码习惯的基础上,再看for与while之间的小区别,就会明白为什么这些区别存在的意义。个人认为,while循环和for循环是非常的基础,但正因为它的基础,所以只要了解过计
2021-09-21 11:00:39
507
原创 【c语言】新手学习了switch后的思考总结
今天初学switch,有了一下四方面的思考。其一:switch是一种语句,这是否意味它需要在某函数内使用(由于初学我的表达不一定准确),即不能独立出来。其二:switch的定位为在多分支的情况下的一种优于(ifelse)的语句,但它的优点在哪里,从结构上看或许仅仅是输入上更加单一,更加简洁。但它同样具有缺点,就是只能输入整形表达式和整形变量。可我认为它真正的优点应该在与它具有更大的可能性,列如:ifelse语句只能作用与自己控制的范围,是有限的量。但switch语句在内容的包含上应该是无尽的,在
2021-09-18 22:44:42
1362
1
原创 【c语言】新学分支语句ifelse的思考与总结
ifelse语句又叫分支语句,是选择结构,主要用于限制性条件的翻译。即在范围的限制,选择的限制时使用。常见结构:1.双选择结构:if(表达式) 语句;else2.多选择结构:if(表达式)语句;elseif(表达式)语句;elseif(表达式)语句;else3范围限制性条件:if(表达式)语句;注意:1.当ifelse语句中需要多个代码作用时,需要用代码块进行整合2.if与else进行组合时,往往取最近的一组进行组合。...
2021-09-17 23:40:03
992
1
原创 新手对自己学习c语言的思考与总结
在最近的学习中,我认识到学习计算机语言最重要的是具有严密的逻辑思维。 首先是写代码的整体思路:写代码主要是解决生活问题,而解决问题应该像数学一样,将问题逻辑化,数学化。目前我认为,应该抓住问题的几个关键点:问题的条件是什么,问题要我们解决什么并将问题简单化,问题是否具有某种逻辑顺序等(待补充)。其次是对日常写代码的一些必要逻辑:一.一个代码必须要具备它的基本框架如:int main(){return 0;}二.代码里的常量必须要有自己的储存空间和类型,当使用自己创建,系...
2021-09-15 22:01:15
275
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人