数组及数组操作

开辟一块连续的内存空间

相同数据类型的集合

一堆数组的集合

int arr[3] = {1,2,3};

int arr[]   = {1,2,3};

int arr[10] = {1,2};

arr代表数组首元素地址

sizeof(arr)= ;12

sizeof(arr)/sizeof(arr[0])

访问方式[1]=9; 通过下标访问

for(int i =0;i<sizeof(arr)/(arr[0]);i++)

{

//arr[i];
}

一堆数组的增删改查

删除:删除头部元素,删除尾部元素,删除值操作

1、删除头部元素

int main()
{
    int arr[] = {1,2,3};
    const int len = sizeof(arr)/sizeof(arr[0]);
    int tmp[len-1] = {};
    for(int i=1;i < len;i++)
    {
        tmp[i-1]=arr[i];
    }
    for(int i=0;i<sizeof(tmp)/sizeof(tmp[0]);i++)
    {
        printf("%d\n",tmp[i]);
    }
    return 0;
}

2、3需用到动态内存

字符和字符串

“hello”-> 字符数组

'h''e''l''l''0''\0'

char ch[] = "hello";//'h''e''l''l''0''\0'

统计一个字符在字符串中出现的次数

int GetCount(char* ch,char value,int len)
{
    //统计字符value出现的个数
    int count = 0;
    for(int i = 0; i < len;i++)
    {
        if (ch[i] == value)
        {
            count++;
        }
    }
    return count;
}
int main()
{
    char ch[] = "i am a student";
    int len = sizeof(ch)/sizeof(ch[0])-1;
    //统计字符‘l’出现的个数
    
    printf("%d\n",GetCount(ch,'a',len));
}

从前向后找到偶数值的位置停止,从后向前找到奇数值的位置停止,交换

 void Adjust(int *arr,int len)
{
     if (arr == NULL)
     {
         return ;
     }
     int i  = 0;//从前向后遍历
     int j  =len - 1;//从后向前遍历
     while(i<j)
     {
         while(i<j && arr[i]%2 != 0)
         {
             i++;
         }
         //arr[i]是偶数
         while(i<j && arr[j]%2 ==0)
         {
             j++;
         }
         //arr[j]是奇数
         int temp = arr[i];
         arr[i] = arr[j];
         arr[j] = temp;
     }
 }
int main()
{
    int arr[] = {1,2,3,4,5,6};
    Adjust(arr,sizeof(arr)/sizeof(arr[0]));
    for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++);
    {
        printf("%d",arr);
    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值