#include"stdio.h"
#define ElemType int
#define MAX 10
typedef struct
{
ElemType data[MAX];
int last;
}List;
int search(int i,List list1)
{
List list=list1;
if(i>list.last)
{
printf("越界。查找失败。\n");
return -100;
}
//printf("查找成功,list.data[%d]位置的值是%d\n",i,list.data[i]);
return list.data[i];
}
int insert(List *list1,int i,int a)
{
int j=0;
List *list=list1;
if(i>list->last)
{
printf("插入位置不合法\n");
return -100;//FAILED
}
if(i==list->last)
{
list->last++;
list->data[list->last]=a;
return 100;//SUCCESS
}
list->last++;
for(j=list->last;j>i;j--)
{
list->data[j]=list->data[j-1];
}
list->data[i]=a;
return 100;//SUCCESS
}
int deleteValue(List *list1,int i)
{
List *list=list1;
if(i>list->last)
{
printf("越界!!!\n");
return -100;
}
for(int j=i;j<list->last;j++)
{
list->data[j]=list->data[j+1];
}
list->last--;
return 0;
}
int sum(List *list)
{
int s=0;
if(list->last==0)
return 0;
for(int i=0;i<list->last;i++)
{
s=s+(list->data[i]);
//i++;
}
return s;
}
void main()
{
List list;
list.last=0;
int i=0,j=0,a;
printf("输入-100结束。\n");
scanf("%d",&a);
while(a!=-100)
{
list.data[list.last]=a;
list.last++;
if(list.last==MAX)
{
printf("已经输入了%d个元素\n",MAX);
break;
}
scanf("%d",&a);
}
//list.data[1]=1;
for(j=0;j<list.last;j++)
printf("%d\n",list.data[j]);
printf("请输入要查找的位置:");
scanf("%d",&i);
if(search(i,list)==-100)
printf("查找失败!!!\n");//查找
else
printf("要查找的值是%d\n",search(i,list));
printf("请输入插入的位置和插入的数值:");
scanf("%d%d",&i,&a);
int result=insert(&list,i,a);
if(result==-100)
printf("插入失败!!!\n");
else
{
printf("插入之后的结果:\n");
for(j=0;j<list.last;j++)
printf("%d\n",list.data[j]);
}
printf("请输入要删除的位置:");
scanf("%d",&a);
result=deleteValue(&list,a);
if(result==-100)
;//
else
{
printf("删除之后的结果:\n");
for(j=0;j<list.last;j++)
printf("%d\n",list.data[j]);
}
printf("总和:%d\n",sum(&list));
}
转载于:https://blog.51cto.com/shamrock/1306501