
4 一维数组
发布时间:
概述
数组: 就是一个集合,里面存放了相同的类型的数据元素
特点1 :数组中的每个数据元素都是相同的数据类型
特点2:数组是有连续的内存地址组成的
定义
一维数组定义的三种方式:
- 数据类型 数姐名[数组长度];
- 数据类型 数组名[数组长度]=(值1,值2...};
- 数据类型 数组名[]={值1,值2...};
示例:
#include <iostream>
using namespace std;
int main() {
// 定义方式1 : 数据类型 数组名[元表个数];
int score[10];
// 利用下标赋值
score[0] = 100;
score[1] = 99;
score[2] = 85;
// 利用下标输出
cout << score[0] << endl;
cout << score[1] << endl;
cout << score[2] << endl;
// 第二种定义方式
// 数据类型 数组名[数组长度]=(值1,值2...};
// 如果(}内不足1日个数据,剩余数据用0补全
int score2[10] = {100, 90, 80, 70, 60, 50, 40, 30, 20, 10};
// 逐个输出
cout << score2[0] << endl;
cout << score2[1] << endl;
// 一个一个输出太麻烦,因此可以利用循环输出
for (int i = 0; i < 10; i++) {
cout << score2[i] << endl;
}
// 定义方式3
// 数据类型 数组名[]={值1,值2...};
int score3[] = {100, 90, 80, 70, 60, 50, 40, 30, 20, 10};
for (int i = 0; i < 10; i++) {
cout << score3[i] << endl;
}
return 0;
}
一维数组名称的用途:
- 可以统计整个数组在内存中的长度
2.可以获取数组在内存中的首地址
实例:
#include <iostream>
using namespace std;
int main() {
// 数组名用途
// 1、可以获取整个数组占用内存空间大小
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
cout << "整个数组所占用内存空间为:" << sizeof(arr) << endl;
cout << "每个元素所占内存空间为:" << sizeof(arr[0]) << endl;
cout << "数组的元表个数为:" << sizeof(arr) / sizeof(arr[0]) << endl;
// 2、可以通过数组名获取到数组首地址
cout << "数组首地址为" << &arr << endl;
cout << "效组中第一个元表地址为:" << &arr[0] << endl;
cout << "数组中第二个元素地址为:" << &arr[1] << endl;
// arr = 100; 错误,数组名是常量,因此不可以賦值
return 0;
}
1.3 课堂练习
1、 数组逆序重存放
2、 查找“支撑数”
思路:由于第一个数和最后一个数不可能是支撑数,那么我们循环的下标范围 1~n-2
对于下标为 i 的元素 a[i] 而言, 左侧的数为a[i-1], 右侧的数为a[i+1]。
2、排除异形基因
3、 整数去重
思路:顺序查找当前元素是否与之前所有元素有相同的,如果没有输出
4、 找找谁的身高超过全家的平均身高
第一步:求和
第二步:求平均
第三步:求哪些人在平均之上
三、作业练习
1、打折优惠
1、橘子称重
1、陶陶摘苹果
1、求和
1、完美的偶数
1、输出奇数和偶数
1、考试成绩的分布情况
附加题:
DF1354:【入门】拿到某个数的概率是多少?
DF1357:【入门】哪个厂家的零件更标准?
四、找数问题
DF1154:【入门】数组元素的查找
DF1152:【入门】求 n个数的最大值和最小值
五、找数问题可选作业
DF1168: 【入门】歌唱比赛评分
DF1170: 【入门】最大数
DF1218: 【入门】摘苹果
一、数组元素移动
DF1009: 【入门】数组逆序
DF1162:【入门】数组元素的删除
思路二:真删除,将数组中下标为x的元素删除!
从删除下标x开始,将元素顺序向前移动!
a[2]=a[3]; a[3]=a[4]; ……a[5]=a[6];
归纳得知: a[i]=a[i+1];//每个数=其后面的元素
DF1211:【入门】数组元素的插入
在第4个数的位置插入 y = 100!
思路:逆序循环下标为 n-1~x结束, 将元素顺序后移(a[i+1] = a[i]) , 空出下标为x的位置;
a[i+1]=a[i]; a[6]=a[5] a[5]=a[4] a[4]=a[3]
在下标为x的位置插入元素y, a[x] = y;
DF1161:【入门】元素插入有序数组
要插入元素的值 y = 2;
思路:
第一步:找出要插入的元素的下标x;
从第一个数开始逐个比较,找到第一个a[i] >= y,下标i 就是 x的值!
第二步:将元素顺序后移(逆序循环n-1~x) ;
第三步:在下标为x的位置插入元素y;
二、数组元素移动作业
DF1213:【入门】删除数组的最小数
DF1157: 【入门】最小数
DF1212: 【入门】移动数组元素
DF1214:【入门】在最大数后面插入一个数
DF1217:【入门】小明排队做操迟到
DF1232: 【入门】换位置