那里错了?
# include<stdio.h># include<malloc.h>
# include<stdlib.h>
struct Arr
{
int * pbase;// 存储的是数组的第一个元素的地址;
int len;// 数组所能容纳的最大元素的个数;
int cet;// 当前数组有效元素的个数;
};
void init_arr(struct Arr * pArr,int length); //输入;
bool append_arr(struct Arr * pArr, int val); //追加;
bool insert_arr(struct Arr * pArr, int pos, int val); //插入;
bool delete_arr(struct Arr * pArr, int pos,int * pval); //删除元素;
int get();
bool is_empty(struct Arr * pArr); //判断是否为空;
bool is_full(struct Arr * pArr); //判断是否满;
void show_arr(struct Arr * pArr); //输出;
void sort_arr(); //排序;
void inversion_arr(); //倒置;
int main(void)
{
struct Arr arr;
int val;
init_arr(&arr,6);
show_arr(&arr);
append_arr(&arr, 1); //追加;
append_arr(&arr, 2);
append_arr(&arr, 3);
append_arr(&arr, 4);
append_arr(&arr, 5);
insert_arr(&arr, 3, 88);
show_arr(&arr); //输出;
if(insert_arr)
{
printf("追加成功!\n ");
}
show_arr(&arr); //输出;
delete_arr(&arr, 2, &val); //删除;
if(delete_arr(&arr, 2, &val))
printf("删除成功!删除的元素为%d\n",val);
/* if(append_arr(&arr,8))
{
printf("追加成功!");
}
else
{
printf("追加失败!");
}
*/
show_arr(&arr); //输出;
printf("最大容量为:%d\n",arr.len);
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
{
pArr->len=length;
pArr->cet=0;
}
return;
}
bool is_empty(struct Arr * pArr)
{
if(0==pArr->cet)
return true;
else
return false;
}
bool is_full(struct Arr * pArr)
{
if(pArr->len==pArr->cet)
return true;
else
return false;
}
void show_arr(struct Arr * pArr)
{
if(is_empty(pArr))// pArr已经是指针变量了。不加*号。
{
printf("数组为空!\n");
}
else
{
for (int i=0;i<pArr->cet;++i)
printf("%d ",pArr->pbase[i]);
printf("\n");
}
}
bool append_arr(struct Arr * pArr,int val)
{
if (is_full(pArr))
return false;
else
{
pArr->pbase[pArr->cet]=val;
pArr->cet++;
return true;
}
}
bool insert_arr(struct Arr * pArr, int pos,int val)
{
if(pos<1||pos>pArr->cet+1)
return false;
if(is_full(pArr))
return false;
int i;
for(i=pArr->cet; i>=pos; --i)
pArr->pbase[i]=pArr->pbase[i-1];
pArr->pbase[pos-1]=val;
pArr->cet++;
return true;
}
bool delete_arr(struct Arr * pArr, int pos,int * pval)
{
if(pos<1||pos>pArr->cet)
return false;
if(is_empty(pArr))
return false;
int i;
*pval=pArr->pbase[pos-1];
for(i=pos;i<pArr->cet;++i)
{
pArr->pbase[i-1]=pArr->pbase[i];
pArr->cet++;
}
return true;
}