创建顺序表并找其中元素的程序出现奇怪问题
我照着书东拼西凑,添油加醋写的程序,但是运行下来发现无论我输入什么元素,printlist出来的都是abcd...这样的连续字母,很是头疼,来求发现错误!#include <stdio.h>
#define MAXSIZE 20
typedef char ElemType;
typedef struct{
ElemType elem[MAXSIZE];
int len;
}SqList;
//以下函数声明
void creatlist(SqList*L,int n);
void printlist(SqList*L);
int find(SqList*L,ElemType x);
main()
{
int len;
char e;
SqList list;
printf("\n---creatlist---\n");
printf("please input len:");
scanf("%d",&len);
creatlist(&list,len);
printlist(&list);
printf("\npiease input find element:");
scanf("%c",&e);
find(&list,e);
getchar();
}
//以下函数定义
void creatlist(SqList*L,int n){
int k;
printf("\nplease input element:");
for(k=1;k<=n;k++)
scanf("%c",&L->elem[k]);
L->len=n;
}
void printlist(SqList *L){
int k;
printf("list have %d element:",L->len);
for(k=1;k<=L->len;k++)
printf("%c",&L->elem[k]);
}
int find(SqList*L,ElemType x){
int i;
for(i=1;i<=L->len;i++)
if(L->elem[i]==x) return i;
return -1;
}