1、数组定义
数组:一组有序数据的集合。
//定义一个长度为5的整形数组
//数组里存储的是5个int类型的变量
int arr[5];
int //数组的数据类型
arr //数组的名字
5 //数组的长度
2、数组下标
数组的下标从0开始,到n-1结束(n是数组长度)。
int arr[5];
0
1
2
3
4
3、数组元素
数组里存储的每一个变量都称为数组的一个元素。
int arr[5];
arr[0] = 5;
arr[1]
arr[2]
arr[3]
arr[4]
4、数组赋值
1)初始化
int arr[5];
//未初始化的数组,每个元素的值默认是随机值;
int arr[5] = {1,2,3,4,5}; //完全初始化
int arr[5] = {1,2,3}; //部分初始化
//部分初始化中,未初始化的元素默认值是0;
int arr[] = {2,3,4,5,6}; //完全初始化的一种
//数组的长度是初始化中元素的个数;
int arr[5] = {};
//数组中的每个元素值都为0;
int arr[]; //错误的定义——未指明数组长度
int arr[n]; //错误的定义——定义数组必须指明长度,不可以在[]里写变量。
int n;
scanf(“%d”,&n);
int arr[n];
编译:静态的检查语法错误
运行:动态的检查逻辑错误
//数组的长度是在编译阶段分配的;
//scanf输入是在运行阶段进行的;
2)赋值
//数组的赋值需要对每个元素分别赋值;
int arr[5];
arr[0] = 3;
arr[1] = 4;
arr[2] = 5;
arr[3] = 6;
arr[4] = 7;
arr[5] = {1,2,3,4,5}; //错误的赋值
定义一个长度为6的整型数组,通过键盘输入分别给数组每个元素赋值,求所有元素的和,并输出。
5、排序
1)冒泡排序
排序规则(升序):数组里相邻元素依次两两比较,如果后面元素值比前面元素值小,则交换两元素值;比较结束,最大的元素值会沉底,一轮排序结束。
后续每一轮排序规则都按第一轮排序规则排,但是已经排好序的元素不再参与排序。
//长度为n的数组,只需要排序n-1轮
4 5 8 6 3
4 5 6 3 8 一轮排序结果
4 5 3 6 8 二轮排序结果
4 3 5 6 8 三轮排序结果
3 4 5 6 8 四轮排序结果
3 4 5 6 8 五轮排序结果