数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组,同一个数据类型数据只能存放在相同数据类型的数组中。
数组特点:
查询快,增删慢
因为数组存放数据是有序的,我们可以通过索引来直接找到想要寻找的数据;
上面说到数组存放数据是有序的,删除某一个元素的话,需要索引找到这个数据,而在这个数据后面元素都需要移动所以比较慢
如图所示:
数组的输入:
int main(){
//定义数组
int arr[10];
//定义循环变量
int i;
//循环输入数据 数组的下标是从0开始的到达数组最大容量结束循环
for(i = 0; i < 10; i++){
printf("请输入%d个元素:", i + 1);
scanf("%d",&arr[i]);
}
}
数组的插入:
void interposition(int arr[]){
//定义数组长度
int len = 5;
int i;
//index 要插入元素的下标 num 要插入的数据
int index , num;
printf("请输入您要插入元素的下标:”);
scanf("%d",&index);
//判断插入下标是否合法小于0不合法,大于它的长度也不合法
if(index < 0 && index >= len){
return;
}
printf("请输入您要插入元素:");
scanf("%d",&num);
//开始拆入 拿下标i指向最后一位元素下标,i大于等于要插入下标的位置,依次--
for(i = len - 1; i >= index; i--){
//将数组中i位置及其后面的数,依次向后移动一格
arr[i+1] = arr[i]
}
//数组长度发生改变
len ++;
}
数组的删除:
void delete1(int arr[]){
//定义数组长度
int len = 5;
//index 要删除元素的下标
int index;
printf("请输入您要删除元素的下标:”);
scanf("%d",&index);
//判断删除下标是否合法小于0不合法,大于它的长度也不合法
if(index < 0 && index >= len-1){
return;
}
int i;
//删除元素
for(i = index + 1; i < len; i++){
//因为当前下标在我们要删除元素的下标后一位,直接拿后一位的元素覆盖到我们要删除元素的下标位置上
arr[i - 1] = arr[i];
}
//数组长度进行修改
len --;
}
数组的遍历:
void output(int arr[] , int len){
//循环变量
int i;
//循环输出
for(i = 0; i < len; i++){
printf("%d “,arr[i]);
}
}