数组的基本内容

数组的概念

一个集合,里面存放了相同类型的数据

数组属于线性表的顺序存储结构,也称为顺序表

数组分为 一维数组,二维数组,字符数组

一维数组

数组的定义方式

一维数组定义的三种方式

1:数据类型 数组名[ 数组长度 ];

2: 数据类型 数组名[ 数组长度 ]={值1,值2 ....};

3: 数据类型 数组名[ ] ={值1 ,值2 ......};

数组的基本操作

数组基本操作有输入,输出,插入,删除,查询,修改等功能

数组的输入
void input(int arr[],int len){
    int i;
    int *p=arr;  //指针
    for(i=0;i<len;i++){
        printf("请输入第%d个元素:",(i+1));
        scanf("%d",&arr[i]);
        //scanf("%d",arr+i);
        //scanf("%d",p+i);
    }
}
数组的输出(遍历数组)
void output(int arr[],int len){
    //定义循环变量
    int i;
    int *p=arr;
    for(i=0;i<len;i++){
        printf("%d ",arr[i]);
        //printf("%d ",*(arr+i));
        //printf("%d ",*(p+i));
    }
}
数组的查询
//根据元素的值去找 下标
int searchValue(int arr[],int len,int value){
    int i;
    for(i=0;i<len;i++){
        if(value==arr[i]){
            return i;
        }
    }
    return -1;
}
//根据下标 查找元素
int seachKey(int arr[],int len,int key){
       //判断 位置是否在数组范围之内
    if(key<0 || key>=len){
        printf("位置不对!");
        return 0;            //exit(0);     结束程序
    }
    int i;
    for(i=0;i<len;i++){
        if(){
            
        }
    }
    printf("查找的元素是:%d\n",arr[key]);
    
}
数组的修改
//根据元素值修改
void updateValue(int arr[],int len){
    //修改前,修改后
    int firstvalue,lastvalue;
    printf("请输入你要修改的元素:\n");
    scanf("%d",&firstvalue);
    
    
    printf("请输入你要修改后的元素:\n");
    scanf("%d",&lastvalue);
    
    int i;
    for(i=0;i<len;i++){
        if(arr[i]==firstvalue){
            arr[i]=lastvalue;
        }
    }
}
//根据位置修改
void updateKey(int arr[],int len){
    int key,value;
    
    printf("请输入你要修改的位置:");
    scanf("%d",&key);
    
    printf("请输入你要修改后的值:");
    scanf("%d",&value);
    if(key<0 || key>=len){
        printf("位置不对!");
        return 0;
    }
    arr[key]=value;
}
数组的插入

void insert(int arr[],int *len,int index,int value){
    int i,temp;
    if(index<0 || index>*len-1){
        return;
    }
    //元素后移
    for(i=len-1;i>=index;i--){
        arr[i+1]=arr[i]
    }
    //插入元素
    arr[index]=value;
    //长度变化
    (*len)++;
}
数组的删除

void delete(int arr[],int len,int index){
    int i;
    if(index<0 || index>*len-1){
        return;
    }
    //元素前移
    for(i=index;i<*len-1;i++){
        arr[i]=arr[i+1];
    }
    //
    (*len)--;
}

二维数组

二维数组就是在一维数组上,多加一个维度

二维数组定义方式

二维数组定义方式

  1. 数据类型 数组名[ 行数 ][ 列数 ];

  1. 数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };

  1. 数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};

  1. 数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4};

二维数组的基本操作

二维数组 的基本操作有输入,输出等功能

二维数组的输入
int arr[3][4];
for(int i=0;i<3;i++){
    for(int j=0;j<4;j++){
        scanf("%d",&arr[i][j]);
    }
}
二维数组的输出
for(int i=0;i<3;i++){
    for(int j=0;j<4;j++){
        printf("%d ",arr[i][j]);
    }
    printf("\n");
}

字符数组

//1、大括号初始化字符数组时,需要预留一个空间做结束标志\0,否则会乱码
char a[5]={'a','b','c','d','e'};            //乱码

//2、双引号初始化时,自带结束标志
char str[]="hello";
strlen 求字符串长度时,不带\0
sizeof 求字符串长度时,带\0

字符数组两种键盘录入方式

1、gets (字符串);

2、scanf("%s",字符串);

//可以校验是否越界,stdin 是标准输入流(键盘输入)
fgets(a,sizeof(a),stdin);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值