求问,L->a[i]=getchar();为何出错呢
//【考察点:顺序表】编写一个程序,其功能是:在一个乱序的顺序存储线性表中,删除所有值相等的多余元素。#include<stdio.h>
#define N 100
typedef char DataType;
typedef struct
{
DataType a[N];
int last;
}SeqList;
//SeqList* L;
SeqList *Input(SeqList *L)
{
int i=0;
L->a[i]=getchar();//为何这一步就无法赋值(执行)呢
while(L->a[i]!='#'&&i<N);
{
i++;
L->a[i]=getchar();//同样执行不下去
}
L->last=i-1;
return L;
}
int DelList(SeqList* L,DataType x[])
{
int l=0;
for(int i=0;i<L->last;i++)
{
for(int j=i+1;j<=L->last;j++)
{
if(L->a[i]==L->a[j])
{
x[l]=L->a[j];//把预删除元素存放到x[l]中
l++;
for(int k=j;k<L->last;k++)
{
L->a[k]=L->a[k+1];
}
L->last=L->last-1;
j=j-1;
}
}
}return 0;
}
int Output(SeqList* L,DataType x[])
{
for(int i=0;i<=L->last;i++)
printf("%c",L->a[i]);
printf("\n");
printf("输出删除元素:");
for(i=0;i<=L->last;i++)
printf("%c",x[i]);
printf("\n");
return 0;
}
int main(void)
{
SeqList *L;
DataType x[N];
printf("输入随意的一组字符,个数小于100,'#'为终止符:");
Input(L);
DelList(L,x);
printf("输出删除了大小相同数字的一组数字:");
Output(L,x);
return 0;
}