编辑代码

#include <stdio.h>
#include <malloc.h> //malloch函数
#include <stdlib.h>//exit函数 
#include <stdbool.h>

//定义一个数据类型,该类型的名称叫做 struct Arr,该数据类型定义了三个成员,分别是pBase len cnt
struct Arr
{
    int *pBase;//存储的是数组的第一个元素的地址
    int len;//存储的是该数组所能存储的最大元素数量
    int cnt;//存储的是该数组所存储的有效值数量
};
//函数申明区域
bool append_arr();//插入函数()
void init_arr(struct Arr*,int );//初始化数组(数组地址,数组长度)
bool delee_arr();//删除数组元素()
bool get_arr();//获取元素的值
bool is_full();//判断数组是空的
bool is_empty();//判断数组是满的
void sotr_arr();//数组排序
void show_arr();//输出
void innversion_arr();//倒置

//主函数运行区域
int main (void) 
{
    struct Arr arr;
    init_arr(&arr,4);
    append_arr(&arr,1);
    append_arr(&arr,2);
    append_arr(&arr,3);
    append_arr(&arr,4);
    show_arr(&arr);
    return 0;
}  

//各函数模块区域
//初始化数组
void init_arr(struct Arr*pArr,int length)
{
    pArr->pBase = (int*)malloc(sizeof(int)*length) ;
    if(NULL==pArr->pBase)
    {
        printf("动态内存分配失败!\n");
        exit(-1);
    }
    else
    {
        printf("动态数组分配成功!\n");
        pArr->len=length; //把数组中能储存元素的最大个数
        pArr->cnt=0; //数组中有效值个数为0
    }
    return;

}

//判断数组是否为空
bool is_empty(struct Arr*pArr)
{
    if(0==pArr->cnt)
    return true;
    else
    return false;
}

//输出数组
void show_arr(struct Arr*pArr)
{
    if(is_empty(pArr))
    {
        printf("数组为空\n");
    }
    else
    {
        for(int i=0;i<pArr->cnt;++i)
        {
            printf("%d",pArr->pBase[i]);
            printf("\n");
        }
    }
    printf("\n"); 
}

//判断数组满了
bool is_full(struct Arr*pArr)
{
    if(pArr->cnt == pArr->len)
    return true;
    else
    return false;
}

//追加数组
bool append_arr(struct Arr*pArr,int val)
{
    if(is_full(pArr))
    {
        printf("数组已满\n");
        return false;
    }
    else
    {
        pArr->pBase[pArr->cnt]=val;
        (pArr->cnt)++;
        return true;
    }
}

//插入数组
bool innversion_arr(struct Arr*arr,int pos,int val)
{
    int i;
    if(is_full(pArr))
    return false;
    if(pos<1||pos>pArr->cnt+1)
    return false;

    for(i=pArr->cnt-1;i>)
    {

    }
}