☘前言☘
今天是我开坑的第二天,也不知道这个系列会不会火呢?
今天依旧会介绍很多基础知识,但是更注重逻辑,如果我有哪些没有讲清楚的,欢迎大家联系我,你提出的问题是我修改完善的基础,万分感谢。
欢迎大家加入我的打卡队列,如果你刷完了对你有帮助请你评论一个打卡。
如果你觉得这本书有用的话还希望多多支持作者。
如果觉得这个文章有用还希望大家交出素质三连呀。
🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人
✨联系方式:2201891280(QQ)
📔源码地址:https://gitee.com/xingleigao/algorithm-notes
⏳全文大约阅读时间: 80min
文章目录
☘前言☘
🍭1.基础知识点
🐌1.1选择结构
🐰1.1.1if语句及其嵌套
🐮1.1.2switch-case结构
🐟1.2 循环结构
🐬1.2.1 while语句
🐳1.2.2 do...while语句
🐋1.2.3 for循环
🦈break和contin语句
⚔️1.3 数组
🗡1.3.1 一维数组
🛡1.3.2冒泡排序
🔧1.3.3 二维数组
⚒1.3.4memset函数
🔨1.3.5 字符数组
🔩1.3.6 string.h头文件
🐳课后习题
🍭1.基础知识点
有了上次课的亿点点基础,我们就可以开始学习一些稍微复杂一点的结构了。上节课的内容非常重要,需要我们去反复推敲打磨,没事了都要回头看一看呢。
那我们废话不多说,开始今天的学习吧。
🐌1.1选择结构
c语言的选择结构主要是两个,其中一个就是if-else结构,另外一个就是switch - case结构,我们今天来分别了解一下吧。
🐰1.1.1if语句及其嵌套
if语句
if语句的基本用法如下:
if(条件A){ ... } else{ ... }
就是根据条件来跳转到不同的语句执行,可以用下面的流程图来表示这一个结果。
举个栗子🌰
#include<cstido> int main(){ int n = 2; if(n > 3){ n = 9; printf("%d\n",n); } else{ printf("%d\n"n); } return 0; }
输出结果:2
需要注意的点有三个:
1.一般只有在明确不出错的情况下才不加括号。(加上不会错就完了)
2,分支结果注意打缩进,新手不打缩进差错看的很费劲,提升下代码可读性吧,求求了😂,3。!=0可以省略,==0可以用!替换。eg.a==0与!a是一样的。
if语句的嵌套
基本嵌套结构如下:
if(条件A){ if(条件B){ ... } else{ ... } } else{ .. }
其实就是套娃,相信都还是可以看得懂的。再次强调,缩进、缩进、缩进(重要的事说三遍)。
一点补充:(嵌套的另外一种写法)
if(条件A){ .. } else if(条件 B){ ... } else{ ... }
🐮1.1.2switch-case结构
sitch-case主要用于多分支的结构,在分支较少的时候并不常用。基本语法如下:
switch(表达式){ case 常量表达式1: ... break; case 常量表达式2: ... break; default: ... }
它的执行过程可以看成下图:
需要注意点:
1.每个case后面一定要加break,不然就会顺序执行所有的之后的函数,可以看流程图。
2.适用于情况较多的时候,平时使用不常见。
🐟1.2 循环结构
循环结构主要包含三种,即while、for、do--while,需要注意循环体的控制语句有两个break、continue。
🐬1.2.1 while语句
假设需要计算1+2+…+n那么应该怎么计算呢?
while就用于这样的问题,当条件满足时不断执行,基本结构如下:
while(条件A){ ... }
基本的执行逻辑就是如下图:
上面那个题目的代码就可以如下所示:
#include<csdtio> int main(){ int n = 100, sum = 0; while(n){ sum += n; n--; } printf("%d\n",sum); return 0; }
其中while的判断和if一样可以省略是否==0,所以这里我算的是100+99+…+1
🐳1.2.2 do…while语句
do...while语句和while语句很类似,但是他们格式是颠倒的。
do{ ... }while(条件A)
执行的顺序如图所示:
do…while会先执行循环体一次,然后才去判断循环条件是否满足,这就使得do…while的语句适用性远远不如while。 建议不用233
🐋1.2.3 for循环
for语句的使用频率是三种循环中最高的,常见格式如下:
for(初始值表达式;判断条件;循环执行表达式){ ... }
常见的执行流程如下
举个栗子🌰
#include<cstdio> int main(){ int sum = 0; for(int i = 1 ; i <= 100 ; i++) sum += i; printf("%d\n",sum); return 0; }
其中i的初始值是1,i小于等于100不断循环,循环结束后i的值会加1。
最终的结果肯定就是1+2+…+100 啦
for需要注意的点:
1.每个表达式都可以省略 第二个表达式省略代表死循环
2.for第一个表达式定义的变量只在循环体内有效,循环执行结束变量就会被回收。
🦈break和contin语句
break和continue都是对循环体的控制。
在switch的时候看到过break,看那张图break就是跳出循环体执行下一条语句。
而continue是结束本次循环开启下一轮循环
看不懂没关系 来看图0.0
主要区别就是控制跳出之后进行什么操作。
举两个栗子🌰作为结束吧
#include<cstdio> int main(){ int sum = 0; for(int i = 1; i <= 100; i ++){ if(i % 2 == 1) continue; sum += i; if(sum > 2000) break; } printf("sum = %d\n",sum); return 0; }
上面程序实现的功能就是计算从1到100内来连续奇数和不大于2000的最大值。