#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("越界。查找失败。 "); return -100; } //printf("查找成功,list.data[%d]位置的值是%d ",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("插入位置不合法 "); 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("越界!!! "); 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结束。 "); scanf("%d",&a); while(a!=-100) { list.data[list.last]=a; list.last++; if(list.last==MAX) { printf("已经输入了%d个元素 ",MAX); break; } scanf("%d",&a); } //list.data[1]=1; for(j=0;j<list.last;j++) printf("%d ",list.data[j]); printf("请输入要查找的位置:"); scanf("%d",&i); if(search(i,list)==-100) printf("查找失败!!! ");//查找 else printf("要查找的值是%d ",search(i,list)); printf("请输入插入的位置和插入的数值:"); scanf("%d%d",&i,&a); int result=insert(&list,i,a); if(result==-100) printf("插入失败!!! "); else { printf("插入之后的结果: "); for(j=0;j<list.last;j++) printf("%d ",list.data[j]); } printf("请输入要删除的位置:"); scanf("%d",&a); result=deleteValue(&list,a); if(result==-100) ;// else { printf("删除之后的结果: "); for(j=0;j<list.last;j++) printf("%d ",list.data[j]); } printf("总和:%d ",sum(&list)); }
本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1306501