day6的两个练习
练习1
练习2
数组的排序
1.冒泡排序
2.选择排序
二维整型数组
1.定义
数据类型 数组名[行数][列数]
⦁ 行数列数必须是常量
2.元素访问
3.初始化
- 全部初始化
- 局部初始化
- 默认初始化(行能省略,列不能省略)
4.存储
- 连续性:数组所占空间大小 = 每个元素所占空间大小*行数*列数
- 有序性:数组元素存放顺序有序,先存第0行所有元素,再存第1行所有元素...(逐行存储)
- 二维数组的本质:二维数组是由一维数组构成的一维数组
4.N维数组可以看成N-1维数组构成的一维数组
5.接收数据
一维字符型数组
1.字符串数组的使用场景:
字符串:c语言使用字符型数组存储字符串
2.定义
⦁ 元素个数必须为常量
⦁ 元素个数必须能够存放的下字符串(注意必须能够存放下字符串末尾的 '\0'字符)
char str[元素个数]
3.元素范围:
⦁ 元素下标范围:0-元素个数-1
⦁ 元素下标可以是常量、变量、表达式
⦁ 数组只能对单个元素操作,不能对整体操作,想对整体操作需要使用库函数
数组名[元素下标]
4.字符串的打印
⦁ printf %s:打印从数组开头到\0中间的内容
⦁ puts 打印从数组开头到\0中间的内容
⦁ 注意:字符串操作函数接口操作字符串时,字符串末尾没有\0,可能导致内存越界
5.字符数组的初始化:
1.全部初始化
2.局部初始化
⦁ 没有给定初值的元素,默认初始化为0值(整数0、字符\0)
3.默认初始化
6.字符型数组的存储
1.连续性:存放数据空间连续
2.有序性:存放数据顺序有序
7.字符串的赋值:
1.从终端接收:
⦁ scanf("%s", str);
⦁ gets(str)
⦁ gets可以接收带有''的字符串,scanf("%s")只能接收不含''的字符串
8.统计字符串的长度
字符串开头到\0中间字符的个数(不包含\0)
1.strlen:获得字符串长度
2.使用方法
3.注意strlen与sizeof区别:
1.sizeof获得数组所占字节空间大小(由数组定义时元素个数决定,与数组存放的字符串没有关系)
2.strlen获得数组中字符串的长度(与数组大小无关)