1.数组的定义
数组 ---- 一组相同类型数据的集合
一组相同类型变量的集合
(一次性 可以 同时 定义多个变量出来 )
2.数组分类:
一维数组
整型一维数组
字符型一维数组
二维数组
整型二维数组
字符型二维数组
定义数组:
一维数组
一维数组的定义方式为:
类型说明符 (1) + 数组名 (2) + [常量表达式] (3)
(1).类型说明符 --- 数据类型
基本数据类型中
整型 int /short /long /long long
浮点型 float / double
字符型 char
其它的数据类型 --- 构造类型
表示,给数组中要存放的 是 这种类型的数据
(2).数组名 --- 是一个名字 用来代表 这个数组 (一组相同类型变量 集合的一个名字)
命名符合 标识符命名规则
(3).[常量表达式] --- [] //就表示 数组
常量表达式 //整型的数值 --- 数组中元素的个数 ---数组长度
eg:
int score[30]; //表示定义了一个数组
//表示定义了一个 包含了30个int型变量的 数组
1.数组 本身也是一种数据类型 --- 构造类型
基本类型 + [] //数组
2.识别数据类型
int score[30] //去掉标识符 --剩下的就是标识符对应的数据类型
//int[30] //数组类型
// --- 表示 是这么一类数据--- 能够存放30个int型变量的 这一类数据
int a //a的数据类型 --int类型
int[30] a; //这种写法 理解没有问题,但是C的语法不支持这样写
int a[30]; //正确的语法形式
数组初始化:
int a[10] = {1,2,3,4,5,6,7,8,9,10}; //全部初始化
int a[10] = {1,2,3,4,5,6}; //部分初始化 -- 前面依次给到,为初始化的部分默认初始化为0
int a[10] = {}; //数组初始化为0了
int a[10] = {0}; //数组初始化为0了
int a[10] ; //为初始化 -- 数组中都是随机值
注:
1.数组 本身也是一种数据类型 --- 构造类型
基本类型 + [] //数组
2.识别数据类型
int score[30] //去掉标识符 --剩下的就是标识符对应的数据类型
//int[30] //数组类型
// --- 表示 是这么一类数据--- 能够存放30个int型变量的 这一类数据
int a //a的数据类型 --int类型
int[30] a; //这种写法 理解没有问题,但是C的语法不支持这样写
int a[30]; //正确的语法形式
赋值:
数组不能整体操作
赋值只能挨个给到数组的元素
输入:
数组不能整体操作
输入只能用for()循环挨个给到数组的元素
内存空间:
1. 连续空间 //连续性
2. 有序性 //有序性
3. 类型相同 //单一性
排序:
将数据 按照 从大到小 或者 从小到大 进行排列
从大到小 --- 降序
从小到大 --- 升序
规定:
排序 统一 为升序
选择
冒泡
插入排序
选择排序:
思想: 给合适的位置选择合适的数
冒泡排序:
思想: 相邻的两个元素,两两比较,小的放前,大的放后
查找算法:
二分查找(折半查找)
前提:
数据必须是有序的
思想:
首先,找到中间位置上的值 和 要查找的值比较
1. 已知数组a[10]和b[10]中元素的值递增有序,
将两个数组合并为一个数组(有序)并完成打印。
int a[10] = {1,3,5,7,9,11,13,15,17,19};
int b[10] = {2,4,6,8,10,12,14,16,18,20};
int c[10+10] = {1,2,3,4....20};
2. 从终端输入一个n将数组int a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}
完成如下变化,并打印,操作方式如下:
1 2 3 4 5 6 7 8 9
n:1 9 1 2 3 4 5 6 7 8
n:2 8 9 1 2 3 4 5 6 7
例题举例
(点关注,不迷路,每日更新!)