#define OVERFLOW -2
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define LIST_SIZE 10
typedef struct student
{
int * elem;
int length;
int size;
}List;
int List_in(List &L)
{
L.elem=(int *)malloc(LIST_SIZE*sizeof(int));
if(!L.elem) return ERROR;
L.length=0;
L.size=LIST_SIZE;
}
int interst(List &L,int i,int e)
{
int *p,*q;
if(i<1 ||i>L.length+1) return ERROR;
q=&L.elem[i-1];
for(p=&L.elem[L.length-1];p>q;p--)
{
*(p+1)=*p;
*q=e;
L.length++;
}
return OK;
}
int delete_s(List &L,int i,int & e)
{
int j=0;
for(j=L.length-1;j>i;i++)
L.elem[j-1]=L.elem[j];
e=L.elem[j-1];
--L.length;
return OK;
}
int getelem(List L,int i,int &e)
{
if(i<1 || i>L.length) return ERROR;
e=L.elem[i-1];
return OK;
}
void main()
{
List L;
int n,i,e,k;
List_in(L);
printf("请输入10个数据\n");
for(i=1;i<=10;i++)
{
scanf("%d ",&n);
interst(L,i,n);
}
printf("请输入你要删除的数位序 :");
scanf("%d",&k);
delete_s(L,i,k);
printf("请输入你要查找的元素为数 :");
scanf("%d",&i);
printf("你要查找的元素是:");
getelem(L,i,e);
printf("e= %d\n ",e);
}
大家看一下,为什么我这个程序运行的结果有些奇怪呢?大家试一下就知道了,我也不知道该怎么样表达。
谢谢了!